使用lml代替beautifulsoup

我觉得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 HTMLimport requestsurl = 'https://segmentfault.com/'css_selector = '.title>a'  # 这是利用浏览器自动获取的,我甚至都不用知道它是什么意思text = requests.get(url).textpage = HTML(text)titles = []for title in page.cssselect(css_selector):    titles.append(title.text)print titles# 这一段程序写下来,不用动脑筋(无脑写),不消耗心智
利用浏览器获取XPath/CSS选择器的方法:1. 推荐使用Firefox, 比Chrome强大太多2. 右键元素-->copy XPath

关键字:Python, lxml, text, xpath

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部