我已经得到了这个代码到目前为止刮OEM,OEM编号,描述,从这个网站和它给我一个列表索引超出范围
pip install beautifulsoup4
from bs4 import BeautifulSoup
import requests
url = "https://www.advantagenationalsupply.com/oem-catalog/"
result = requests.get(url)
doc = BeautifulSoup(result.text, "html.parser")
print(doc.prettify())
ANS = doc.find_all(text="ANS-")
print(ANS)
parent = ANS[0].parent
我试着运行这个,并期望得到一个list
的项目有关的ANS在网站上。但相反,我得到了“列表索引超出范围”
1条答案
按热度按时间wljmcqd81#
这里的主要问题是
string argument
的值必须完全匹配,否则在使用find_all()
时必须使用regex
。让它变得更简单,使用
pandas.read_html()
来抓取表,这是最佳实践,将涵盖大多数情况。示例
输出
| | OEM|OEM编号|说明|ANS编号|
| - ------|- ------|- ------|- ------|- ------|
| 无|贝彻|小行星1007|垫片|美国国家标准-体重-0011|
| 1个|卡拉瑟斯|000878-十二|1/4”垫片|ANS-CRS-0001标准|
| 第二章|卡拉瑟斯|000878-12-不 rust 钢|1/4”不 rust 钢垫片|ANS-CRS-0001标准配置文件|
| 三个|卡拉瑟斯|000878-十四|3/8”垫片|ANS-CRS-0012标准|
| 四个|卡拉瑟斯|000878-十五|1/2”垫片|ANS-CRS-0016标准|
| 五个|卡拉瑟斯|000878-十六|3/4”垫片|美国国家标准-CRS-0003|
...
在备选方案中,使用
css selectors
选择更具体的元素:示例
输出