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