2

假设我正在使用 urllib2 和 cookiejar(就像这样)从网站获取响应。现在我正在寻找一种简单的方法来使用 jQuery 从网络服务器返回的响应中抓取数据。

我知道还有其他模块可以在 python 中用于网络抓取(),但它可能只使用 jQuery 命令吗?我假设我需要在 python 中使用某种 js 解析器?

我想使用 jQuery 的原因是我有大约 20 个 Greasemonkey 脚本(大部分是由其他人编写的),它们对许多网站和网络游戏进行了一些有趣的修改。他们使用 jQuery 进行所有的 DOM 修改。我希望能够简单地将其移植到 python(实现简单有效的自动化),而不是完全重构大部分工作且可靠的代码。

4

2 回答 2

6

pyquery非常适合这项任务。

它允许您在 Python 的 (X)HTML/XML 上使用 jQuery 之类的选择器。

例如:

>>> from pyquery import PyQuery as pq
>>> d = pq("<html><p id="hello">Foo</p></html>")

>>> d("#hello")
[<p#hello.hello>]

>>> d('p:first')
[<p#hello.hello>]

有关详细信息,请参阅完整的 API 文档,以及有关源和问题跟踪器的bitbucket 项目页面。

于 2012-10-05T14:39:41.073 回答
2

用于lxml解析 HTML 并使用它的cssselect模块

from lxml.cssselect import CSSSelector
from lxml import etree

tree = etree.parse(document)
elements = CSSSelector('div.content')(tree)
于 2012-10-05T14:39:31.123 回答