所以我正在做一个python项目,我决定做一个超市比较。我决定从现有的超市比较网站上获取价格
我使用此网站了解: https://docs.python-guide.org/scenarios/scrape/
首先,我尝试从以下网站获取苹果(在乐购)的价格:
http://www.mysupermarket.co.uk/tesco-price-comparison/Fruit/Tesco_Gala_Apple_Approx_160g.html
使用文档代码的编辑版本,即:
import requests
from lxml import html
page = requests.get('http://www.mysupermarket.co.uk/tesco-price-comparison/Fruit/Tesco_Gala_Apple_Approx_160g.html')
tree = html.fromstring(page.content)
price_tesco = tree.xpath('//*[@id="PriceWrp"]/div[2]/span')
print(price_tesco)
我尝试了价格的xpath代码,但当我打印价格时,它什么也不返回(一个空列表)
那么我该如何解决这个问题呢
注意-我对HTML抓取是新手,对python有基本的了解,但我决定要面对一些挑战
提前谢谢
可能这个站点是动态的,不允许您获取完整的html文件。在这种情况下,您可以使用“selenium”库,速度稍慢,但总能解决您的问题
因为它是一个javascript呈现页面,所以将requests_html与呈现类似:
我不能查看有问题的网站(在防火墙后面),但是你应该知道,现在很多网站都有使用javascripts之类的动态内容,并且不能使用基本库正确地获取这些内容,如果你的
xpath
确实正确,但没有返回任何内容,我假设这里就是这种情况最好的选择是使用一个库,它可以呈现和刮取这些类型的动态内容,例如selenium或Requests-HTML(我的首选,因为它是无头的)
相关问题 更多 >
编程相关推荐