我是网络抓取的新手,想从亚马逊中提取一些信息。我已经写了这几行基本行,但它们不起作用......
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")