如何利用Python的请求抓取超市营养数据?

时间:2018-02-27 17:56:17

标签: python web-scraping python-requests

我想从此页面抓取营养数据:http://www.mysupermarket.co.uk/tesco-price-comparison/Fruit/Tesco_Gala_Apple_Approx_160g.html

我尝试了以下代码。

import requests, bs4
res = requests.get('http://www.mysupermarket.co.uk/tesco-price-comparison/Fruit/Tesco_Gala_Apple_Approx_160g.html')

但是,当我使用浏览器检查页面时,响应的文本与我看到的HTML不匹配。

所以我不能用美丽的汤来搜索它。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

一个很好的选择是使用新发布的请求 - 同一作者的HTML库。

通过这种方式,您可以解析HTML,就像这样简单:

passthru

official site上查看。

谢谢。

答案 1 :(得分:0)

您需要从.text对象的res属性中检索标记。您的代码应该是:

import requests, bs4
res = requests.get('http://www.mysupermarket.co.uk/tesco-price-comparison/Fruit/Tesco_Gala_Apple_Approx_160g.html')
html = res.text

答案 2 :(得分:0)

这是由于在不同浏览器上查看时html标记的不同方向而产生的问题。由于每个浏览器的用户代理不同,因此会出现这种情况。

如果要查看与浏览器中相同的文本,请使用Selenium Webdriver。 它使用起来非常简单方便。 刚完成后,请使用源代码并使用Beautiful Soup。

如果您想了解如何实施selenium,请查看here

即使遇到问题,也可以随时联系。