首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bs4 soup.find()在亚马逊页面上返回none

bs4 soup.find()在亚马逊页面上返回none
EN

Stack Overflow用户
提问于 2021-08-31 21:32:18
回答 1查看 95关注 0票数 0

我试图在亚马逊上削减这个产品的价格,但当我使用bs4的查找功能时,我得到了一个none对象,谁能告诉我我的代码出了什么问题:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import smtplib
import requests
Url="https://www.amazon.fr/HyperX-Cloud-Sans-fil-interrupteur/dp/B08NTYB4M7/ref=sr_1_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3O51QACXTGCAX&dchild=1&keywords=hyperx+cloud+2+wireless&qid=1630444291&sprefix=hyperx+cloud+2+w%2Caps%2C203&sr=8-2"
page=requests.get(Url)
soup=BeautifulSoup(page.content, "html.parser")
print(soup.find(id="productTitle"))
EN

回答 1

Stack Overflow用户

发布于 2021-08-31 21:37:42

试着在你的请求中添加一个User-Agent HTTP头,这样亚马逊就会认为你的请求来自浏览器(例如火狐),而不是脚本:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
}

Url = "https://www.amazon.fr/HyperX-Cloud-Sans-fil-interrupteur/dp/B08NTYB4M7/ref=sr_1_2?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3O51QACXTGCAX&dchild=1&keywords=hyperx+cloud+2+wireless&qid=1630444291&sprefix=hyperx+cloud+2+w%2Caps%2C203&sr=8-2"
page = requests.get(Url, headers=headers)
soup = BeautifulSoup(page.content, "html.parser")
print(soup.find(id="productTitle").get_text(strip=True))

当我运行这段代码时,它打印出:

代码语言:javascript
复制
HyperX Cloud II Sans fil - Casque de jeu pour PC, PS4, interrupteur Nintendo, batterie longue durée (jusqu'à 30 heures), son Surround 7.1, microphone amovible à réduction de bruit et contrôle du micro
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69005528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档