深入使用过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安装是一个难题,常有很多错误,令人望而生畏,这里提供两种方法

  1. Windows平台: 使用Anaconda集成安装包,无脑解决

  2. 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相关推荐

  1. python爬虫lxml_python爬虫BeautifulSoup和Lxml性能对比

    1.背景 Python爬虫的主要套路就是使用requests库获取网页源代码,然后再从网页源代码中提取自己所需的信息.之前的案例中从网页提取信息主要使用BeautifulSoup--美味汤,确实很美味 ...

  2. python版本回退_Python爬虫之BeautifulSoup解析之路

    上一篇分享了正则表达式的使用,相信大家对正则也已经有了一定的了解.它可以针对任意字符串做任何的匹配并提取所需信息. 但是我们爬虫基本上解析的都是html或者xml结构的内容,而非任意字符串.正则表达式 ...

  3. Python中xPath技术和BeautifulSoup的使用

    xpath基本知识 XPath语法:使用路径表达式来选取XML或HTML文档中的节点或节点集 路径表达式 nodename:表示选取此节点的所有子节点 /    : 表示从根节点选取 //   :选择 ...

  4. python lxml使用_使用lxml和Python进行Web抓取的简介

    python lxml使用 by Timber.io 由Timber.io 使用lxml和Python进行Web抓取的简介 (An Intro to Web Scraping with lxml an ...

  5. python网络爬虫--BeautifulSoup

    本随笔记录学习崔庆才老师编著的<Python3网络爬虫开发实战>以及<Beautiful Soup 4.4.0文档>. 安装BeautifulSoup4以及解析器 Instal ...

  6. beautifulsoup解析动态页面div未展开_Python爬虫 | 0xb 数据解析:PyQuery库

    (给抠腚男孩加星标,提升Python.Android技能) 作者:CoderPig 本节带来数据解析部分最后一个解析库PyQuery,它的API和前端著名框架jQuery相似,名字由此而来.如果你有前 ...

  7. 解析库之——beautifulsoup

    阅读目录 一 介绍 二 基本使用 三 遍历文档树 四 搜索文档树 五 修改文档树 六 总结 一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通 ...

  8. BeautifulSoup库

    BeautifulSoup(markup,'html.parser') BeautifulSoup(markup,'lxml') BeautifulSoup(markup,'xml') Beautif ...

  9. python学习(25) BeautifulSoup介绍和实战

    BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合 ...

最新文章

  1. Flink1.7.2 sql 批处理示例
  2. win2012服务器硬盘分区,Windows Server 2008/2012更改磁盘分区大小教程
  3. 【带着canvas去流浪(10)】文字烟花
  4. Tensorflow基于minist数据集实现自编码器
  5. 项目中除了需求外还需要知道的问题
  6. [Codevs] 1004 四子连棋
  7. 孙宇晨凌晨发致歉信:为过度营销、热衷炒作的行为深感愧疚
  8. 0923-网络 文件上传
  9. 手机厂商们,不鸡贼能死?
  10. 折线图_手把手教你用ECharts画折线图
  11. java面向对象之封装
  12. C/C++ typedef用法!
  13. 【七日阅书】1.注重实效《程序员修炼之道—从小工到专家》
  14. matlab中矩阵的所有元素求和,matlab 矩阵元素求和、求均值(期望)和均方差
  15. Html中如何自定义Video显示的长宽比
  16. (转)五大常用算法:分治、动态规划、贪心、回溯和分支界定
  17. PyTorch基础教程学习笔记(八):训练一个分类器
  18. Vue项目流程7,交易页面,提交订单,支付页面,利用element UI 以及 QRCode 完成微信支付,弹出框按钮的相关工作,个人中心以及子路由我的订单
  19. 4.16-4.18 transition-group动画(卡片排序),忍让,谦逊,前进。
  20. ESRI技术认证考试大纲

热门文章

  1. Linux实验二:vi编辑器的使用
  2. redis——命令请求的执行过程
  3. python学习实例(5)
  4. Nginx不停机优雅升级
  5. fastjson解析多层数据_怎么解析三层List json数据
  6. C++primer 第 2 章 变量和基本类型
  7. CLion 输出遇到乱码解决办法,GBK和utf-8的转换
  8. SpringBoot 集成 Nacos
  9. 如何进行个人知识管理和提高自己能力?
  10. 最新ffmpeg编译和用eclipse进行源码调试