XPATH 适用于 Chrome,但不适用于 Scrapy
XPATH works in Chrome, but not in Scrapy
我试图抓取一个页面。抱歉,由于我工作的保密协议,我不能透露 link。
print response.xpath('//tr')
但奇怪的是,XPATH 仅适用于 Chrome Dev Tools,但不适用于 Scrapy。我通过response.body
查看了抓取的HTML,HTML是正常的
找到答案了。原来 HTML 坏了,Scrapy 不能自己修复它,所以它需要 Beautiful Soup 的帮助。我这样做:
from scrapy.selector import Selector
from bs4 import BeautifulSoup
fixed_html = str(BeautifulSoup(response.body, "lxml"))
print Selector(text=fixed_html).xpath('//*')
我试图抓取一个页面。抱歉,由于我工作的保密协议,我不能透露 link。
print response.xpath('//tr')
但奇怪的是,XPATH 仅适用于 Chrome Dev Tools,但不适用于 Scrapy。我通过response.body
查看了抓取的HTML,HTML是正常的
找到答案了。原来 HTML 坏了,Scrapy 不能自己修复它,所以它需要 Beautiful Soup 的帮助。我这样做:
from scrapy.selector import Selector
from bs4 import BeautifulSoup
fixed_html = str(BeautifulSoup(response.body, "lxml"))
print Selector(text=fixed_html).xpath('//*')