使用lxml代替beautifulsoup
深入使用过lxml的都会深深地喜欢上它,虽然BeautifulSoup很流行,但是深入了解lxml后,你就再也不会使用bs了
我觉得beautifulsoup不好用,速度也慢(虽然可以使用lxml作为解析器了).另外soup.find_all
这种简直就是手工时代
的操作(很多人使用find
find_all
这几个函数, 其实它们使用起来不是很愉快),手工操作的另一个特征是需要自己手写正则表达式(正则是一个小范围内的军刀,大范围用是不对的)
多使用soup.select
才是正确的选择, 多简单方便.
爬虫对html页面做的操作,大部分时候在选取东西,find_all
还要自己手工去写(比如手工写正则表达式, it's a hell).
使用XPath
以及CSS选择器
才是明智的选择,这两者,浏览器都可以帮我们自动生成,何乐不为?
另外,lxml
用起来舒服多了,速度也不错.
另外,lxml安装是一个难题,常有很多错误,令人望而生畏,这里提供两种方法
Windows平台: 使用Anaconda集成安装包,无脑解决
Ubuntu平台:
sudo apt-get install python-lxml
无脑解决
我从不觉得去自己解决lxml在这些平台的安装有什么很大价值,反而容易令人自我怀疑.(宝贵的时间为何要浪费在这种事情上面?)
下面就来一个示例:
#####################
# 获取SF首页的标题
#####################
from lxml.etree import HTML
import requestsurl = 'https://segmentfault.com/'
css_selector = '.title>a' #这是利用浏览器自动获取的,我甚至都不用知道它是什么意思text = requests.get(url).text
page = HTML(text)titles = []
for title in page.cssselect(css_selector):titles.append(title.text)print titles# 这一段程序写下来,不用动脑筋(无脑写),不消耗心智
利用浏览器获取XPath/CSS选择器的方法:
1. 推荐使用Firefox, 比Chrome强大太多
2. 右键元素-->copy XPath
使用lxml代替beautifulsoup相关推荐
- python爬虫lxml_python爬虫BeautifulSoup和Lxml性能对比
1.背景 Python爬虫的主要套路就是使用requests库获取网页源代码,然后再从网页源代码中提取自己所需的信息.之前的案例中从网页提取信息主要使用BeautifulSoup--美味汤,确实很美味 ...
- python版本回退_Python爬虫之BeautifulSoup解析之路
上一篇分享了正则表达式的使用,相信大家对正则也已经有了一定的了解.它可以针对任意字符串做任何的匹配并提取所需信息. 但是我们爬虫基本上解析的都是html或者xml结构的内容,而非任意字符串.正则表达式 ...
- Python中xPath技术和BeautifulSoup的使用
xpath基本知识 XPath语法:使用路径表达式来选取XML或HTML文档中的节点或节点集 路径表达式 nodename:表示选取此节点的所有子节点 / : 表示从根节点选取 // :选择 ...
- python lxml使用_使用lxml和Python进行Web抓取的简介
python lxml使用 by Timber.io 由Timber.io 使用lxml和Python进行Web抓取的简介 (An Intro to Web Scraping with lxml an ...
- python网络爬虫--BeautifulSoup
本随笔记录学习崔庆才老师编著的<Python3网络爬虫开发实战>以及<Beautiful Soup 4.4.0文档>. 安装BeautifulSoup4以及解析器 Instal ...
- beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库
(给抠腚男孩加星标,提升Python.Android技能) 作者:CoderPig 本节带来数据解析部分最后一个解析库PyQuery,它的API和前端著名框架jQuery相似,名字由此而来.如果你有前 ...
- 解析库之——beautifulsoup
阅读目录 一 介绍 二 基本使用 三 遍历文档树 四 搜索文档树 五 修改文档树 六 总结 一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通 ...
- BeautifulSoup库
BeautifulSoup(markup,'html.parser') BeautifulSoup(markup,'lxml') BeautifulSoup(markup,'xml') Beautif ...
- python学习(25) BeautifulSoup介绍和实战
BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合 ...
最新文章
- Flink1.7.2 sql 批处理示例
- win2012服务器硬盘分区,Windows Server 2008/2012更改磁盘分区大小教程
- 【带着canvas去流浪(10)】文字烟花
- Tensorflow基于minist数据集实现自编码器
- 项目中除了需求外还需要知道的问题
- [Codevs] 1004 四子连棋
- 孙宇晨凌晨发致歉信:为过度营销、热衷炒作的行为深感愧疚
- 0923-网络 文件上传
- 手机厂商们,不鸡贼能死?
- 折线图_手把手教你用ECharts画折线图
- java面向对象之封装
- C/C++ typedef用法!
- 【七日阅书】1.注重实效《程序员修炼之道—从小工到专家》
- matlab中矩阵的所有元素求和,matlab 矩阵元素求和、求均值(期望)和均方差
- Html中如何自定义Video显示的长宽比
- (转)五大常用算法:分治、动态规划、贪心、回溯和分支界定
- PyTorch基础教程学习笔记(八):训练一个分类器
- Vue项目流程7,交易页面,提交订单,支付页面,利用element UI 以及 QRCode 完成微信支付,弹出框按钮的相关工作,个人中心以及子路由我的订单
- 4.16-4.18 transition-group动画(卡片排序),忍让,谦逊,前进。
- ESRI技术认证考试大纲