推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
saximi
V2EX  ›  Python

请教关于 lxml 的用法

  •  
  •   saximi · Sep 27, 2017 · 3792 views
    This topic created in 3328 days ago, the information mentioned may be changed or developed.
    在爬虫中,用 Request()方法返回的 response 对象,请问要如何与 lxml 结合在一起使用呢?
    例如 response.xpath('//div[@class="A"]') 这个语句要改为用 reponse 和 lxml 表示该怎么写呢?
    谢谢
    9 replies  •  2017-09-29 19:01:08 +08:00
    billion
    billion
    Sep 27, 2017
    2
    如果你非要字典有 Scrapy 的情况下还手动用 lxml 的话,

    ```python
    from lxml.html import fromstring
    selector = fromstring(response.body.decode())
    selector.xpath('//div[@class="A"]')
    ```
    saximi
    saximi
    OP
    Sep 27, 2017
    3
    @billion 我初学爬虫,想用一些最主流的模式和包来实现功能。我知道 Scrapy 是最好用的架构,所以肯定要用的,另外据说 lxml 是 Python 语言里和 XML 以及 HTML 工作的功能最丰富和最容易使用的库。所以我才产生了如何在 Scrapy 下使用 lxml 的念头,当然这在各位前辈看来却可能是很不合理的搭配。
    按照您的意思,是不是既然使用了 Scrapy 架构,就用 xpath 来解析 XML 和 HTML 即可,不要再使用 lxml 了?
    谢谢指点!
    zhusimaji
    zhusimaji
    Sep 28, 2017
    4
    还有一个强大的库 bs4
    mentalkiller
    mentalkiller
    Sep 28, 2017
    5
    saximi
    saximi
    OP
    Sep 28, 2017
    6
    @mentalkiller
    @zhusimaji 谢谢指点,我也有了解过 BS4,看了某些材料说除了正则,效率最快的是 lxml,BS4 虽然很友好但是效率相对较低,是这样么?
    yucongo
    yucongo
    Sep 29, 2017
    7
    趁早改投 pyquery 门下吧……
    zhusimaji
    zhusimaji
    Sep 29, 2017
    8
    @saximi 怎么会效率低,你可以使用不同解析器去解析 html,比如你提到的 lxml 都是可以使用的,所以效率问题不大
    billion
    billion
    Sep 29, 2017
    9
    @saximi Scrapy 本身就自动会使用 lxml,这是它的一个依赖包。Scrapy 本来已经自动使用 lxml 帮你处理好了,你直接写 XPath 就好了,可你偏要自己再用 lxml 处理一遍。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1681 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
    ♥ Do have faith in what you're doing.