美丽汤蟒蛇...soup.find(id= "productTitle" ) 不返回任何内容



我是网络抓取的新手,想从亚马逊中提取一些信息。我已经写了这几行基本行,但它们不起作用......

import requests
from bs4 import BeautifulSoup
URL ='https://www.amazon.ca/Monkey-Biscuits-14-oz-Orange/dp/B074SYBXLG/'
headers= {'User-Agent':  '...myuseragent' }
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content,"html.parser")
print( soup.find(id="productTitle") ) 

然而,html文件显然有以下部分:

<span id="productTitle" class="a-size-large">
Exotic Nutrition Monkey Biscuits 14 oz. (Orange) - Food for Old World Primates
</span>

任何形式的帮助都将不胜感激

html 文档中的某些标签可能由 javascript 动态生成。
通过使用BeautifulSoup,您只能抓取静态元素。 使用硒将使您摆脱麻烦。
https://selenium-python.readthedocs.io/api.html

似乎"html.parser"找到它有问题,但如果我使用"lxml"它可以工作 - 但这可能意味着您必须安装模块lxml

soup = BeautifulSoup(page.content, "lxml")
print(soup.find(id="productTitle").get_text(strip=True)) 

编辑:也适用于"html5lib"(如果您已安装(

soup = BeautifulSoup(page.content, "html5lib")

最新更新