Python 美丽的巴黎不是';在亚马逊抓取网页时不工作

Python 美丽的巴黎不是';在亚马逊抓取网页时不工作,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我对网络抓取是新手,我正在尝试在亚马逊上使用基本技能。我想编写一个代码,用以查找关于价格、评级和其他信息的前十大“今日最伟大交易” 每次我尝试使用find()和指定类来查找特定标记时,它总是说“无”。但是,实际的HTML具有该标记。 在手动扫描时,我发现一半的代码没有显示在输出终端上。显示的代码是一半,但是主体和html标记确实关闭了。只是body标签中的一大块代码丢失了 显示的最后一行代码是: <!--[endif]----> 理想情况下,这应该给我div标记中的代码,这样我就可

我对网络抓取是新手,我正在尝试在亚马逊上使用基本技能。我想编写一个代码,用以查找关于价格、评级和其他信息的前十大“今日最伟大交易”

每次我尝试使用find()和指定类来查找特定标记时,它总是说“无”。但是,实际的HTML具有该标记。 在手动扫描时,我发现一半的代码没有显示在输出终端上。显示的代码是一半,但是主体和html标记确实关闭了。只是body标签中的一大块代码丢失了

显示的最后一行代码是:

<!--[endif]---->
理想情况下,这应该给我div标记中的代码,这样我就可以进一步获得产品的名称。但是,输出仅显示“无”。而在打印没有标签的整个代码时,里面缺少了一大块html

当然,所需的信息在丢失的html代码中

亚马逊正在阻止我的请求吗?请帮忙

用户代理请求标头包含一个特征字符串,该字符串允许网络协议对等方识别请求软件用户代理的应用程序类型、操作系统、软件供应商或软件版本。验证服务器端的用户代理标头是一项常见操作,因此请确保使用有效的浏览器用户代理字符串以避免被阻止

(来源:)

您只需要设置一个合法的用户代理。因此,添加标题以模拟浏览器:

# This is a standard user-agent of Chrome browser running on Windows 10 
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' } 
例如:

from bs4 import BeautifulSoup
import requests 
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
resp = requests.get('https://www.amazon.com', headers=headers).text 
soup = BeautifulSoup(resp, 'html.parser') 
...
<your code here>
可能重复的
from bs4 import BeautifulSoup
import requests 
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
resp = requests.get('https://www.amazon.com', headers=headers).text 
soup = BeautifulSoup(resp, 'html.parser') 
...
<your code here>
headers = { 
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36', 
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
'Accept-Language' : 'en-US,en;q=0.5',
'Accept-Encoding' : 'gzip', 
'DNT' : '1', # Do Not Track Request Header 
'Connection' : 'close'
}