资讯专栏INFORMATION COLUMN

使用lxml代替beautifulsoup

Drinkey / 1964人阅读

摘要:深入使用过的都会深深地喜欢上它虽然很流行但是深入了解后你就再也不会使用了我觉得不好用速度也慢虽然可以使用作为解析器了另外这种简直就是手工时代的操作很多人使用这几个函数其实它们使用起来不是很愉快手工操作的另一个特征是需要自己手写正则表达式正则

深入使用过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 requests


url = "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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37986.html

相关文章

  • Python3网络爬虫实战---29、解析库的使用BeautifulSoup

    摘要:解析器在解析的时候实际上是依赖于解析器的,它除了支持标准库中的解析器,还支持一些第三方的解析器比如,下面我们对支持的解析器及它们的一些优缺点做一个简单的对比。 上一篇文章:Python3网络爬虫实战---28、解析库的使用:XPath下一篇文章:Python3网络爬虫实战---30、解析库的使用:PyQuery 前面我们介绍了正则表达式的相关用法,但是一旦正则写的有问题,可能得到的就...

    MockingBird 评论0 收藏0
  • Python3网络爬虫实战---4、数据库的安装:MySQL、MongoDB、Redis

    摘要:运行结果如果运行结果一致则证明安装成功。上一篇文章网络爬虫实战请求库安装下一篇文章网络爬虫实战数据库的安装 上一篇文章:Python3网络爬虫实战---2、请求库安装:GeckoDriver、PhantomJS、Aiohttp下一篇文章:Python3网络爬虫实战---数据库的安装:MySQL、MongoDB、Redis 抓取下网页代码之后,下一步就是从网页中提取信息,提取信息的方式有...

    xbynet 评论0 收藏0
  • Python爬虫笔记4-BeautifulSoup使用

    摘要:方法作用查找所有符合条件的元素,返回的是列表形式参数可以根据节点名来查找元素。示例查询第一个标签查找第一个节点内容中有字符串的节点内容运行结果关于的使用就这样吧,常用个人就觉得用好即可参考链接崔庆才网络爬虫开发实战使用 BeautifulSoup介绍 与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据。 几种解析工...

    fobnn 评论0 收藏0
  • BeautifulSoup:网页解析利器上手简介

    摘要:文档写得很清楚,也有中文版,你只要看了最初的一小部分,就可以在代码中派上用场了。 关于爬虫的案例和方法,我们已讲过许多。不过在以往的文章中,大多是关注在 如何把网页上的内容抓取下来 。今天我们来分享下,当你已经把内容爬下来之后, 如何提取出其中你需要的具体信息 。 网页被抓取下来,通常就是 str 字符串类型的对象 ,要从里面寻找信息,最直接的想法就是直接通过字符串的 find 方法 ...

    Carl 评论0 收藏0
  • BeautifulSoup 使用指北 - 0x01_概览

    摘要:,所有笔记均托管于仓库。是一个用来从或文件中提取数据的库。如果对速度有严格要求,应直接使用库来解析。对而言,解析器的速度比或更快。可以通过安装库来显著提升检测编码方案的速度。 GitHub@orca-j35,所有笔记均托管于 python_notes 仓库。欢迎任何形式的转载,但请务必注明出处。 概述 ⚠官方文档中混杂了 Py2 和 Py3 的术语和代码,本笔记针对 Py3 梳理了文档...

    jay_tian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<