我想从此页面抓取营养数据: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不匹配。
所以我不能用美丽的汤来搜索它。
我该如何解决这个问题?
答案 0 :(得分:2)
答案 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
即使遇到问题,也可以随时联系。