为了账号安全,请及时绑定邮箱和手机立即绑定

我无法从 URL 获取文本 (BeautifullSoup)

我无法从 URL 获取文本 (BeautifullSoup)

慕桂英3389331 2023-08-08 17:32:02
我正在尝试学习如何通过 python 脚本从互联网获取信息。这里是:import requestsfrom bs4 import BeautifulSoupurl = 'https://www.amazon.es/Poco-NFC-Smartphone-Punch-Hole-Quad-c%C3%A1mara/dp/B08B9C149J/ref=sr_1_3?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=poco%2Bx3&qid=1600179415&quartzVehicle=16-179&replacementKeywords=poco&sr=8-3&th=1'headers ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'}page = requests.get(url, headers=headers)soup = BeautifulSoup(page.content, "html.parser")title = soup.find( id='productTitle').get_text()问题是,当我应该获得在浏览器中看到的标题时,我却没有得到 ID“productTitle”搜索的结果。有任何想法吗?
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

id="productTitle"这里的问题是响应的内容中不存在 的元素。您可以通过打开 Chrome 或其他浏览器中的“源”选项卡来验证这一点。按 Ctrl+Shift+I 并单击页面顶部的“源”。展开www.amazon.es及其下的文件夹。单击该文件并按 Ctrl+F 并键入“productTitle”。没有找到。

您还会看到该页面有大量 JavaScript。当该代码在浏览器中运行时,很可能会将元素添加到 DOM。当您使用 requests 和 BeautifulSoup 时,不会执行此 JavaScript 代码,因此您不会获得与在浏览器中看到的完全相同的结果。


查看完整回答
反对 回复 2023-08-08
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

当转到代码中提供的链接,然后在 HTML 代码中手动搜索“productTitle”时,会出现三个结果。问题可能是您只是得到第一个结果,因此而不是实际的标题。我猜你想要id=productTitle跨度。尝试使用

soup.find("span", id='productTitle').get_text()


查看完整回答
反对 回复 2023-08-08
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

具有讽刺意味的是,亚马逊不喜欢机器人浏览那里的东西。他们对漂亮的汤、硒等东西设置了某种障碍。


查看完整回答
反对 回复 2023-08-08
  • 3 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信