Scrapy:如何在已经scrapy / wget下载的文件上使用XPath选择器?

时间:2013-01-13 08:20:55

标签: python scrapy

我关注Scrapy tutorial。我的项目涉及解析已经由Scrapy或wget下载的文件。我知道我可以使用XPath选择器,但到目前为止我看到的示例涉及在Scrapy中的parse方法中调用XPath选择器,因此仅适用于Scrapy下载的文件。有没有办法可以直接在下载的文件上使用XPath?我是Python和Scrapy的新手,所以我找不到在独立的非Scrapy Python脚本中调用XPath的方法。

2 个答案:

答案 0 :(得分:1)

scrapy大多数情况下使用lxml作为xpath选择器后端。

您可以直接在任何文件上使用lxml。

P.S。 https://github.com/scrapy/scrapy/blob/master/scrapy/selector/lxmlsel.py

您也可以手动构建一个Response对象并将其提供给HtmlXPathSelector(未经测试):

from scrapy.selector import HtmlXPathSelector
from scrapy.http import TextResponse

body = '<your html page here'
response = TextResponse(url = '', body = body, encoding = 'utf-8')

hxs = HtmlXPathSelector(response)
subcategories = hxs.select("your xpath query here")
print subcategories

答案 1 :(得分:1)

您可以使用Beautiful Soup来解析已下载的文件。 它更容易使用

http://www.crummy.com/software/BeautifulSoup/bs4/doc/

我甚至喜欢在使用scrapy解析时使用它