python - 使用 bs4 进行网页抓取时如何找到特定的类?
问题描述
我正在尝试编写一个刮板来刮我网站上产品的产品 ID。
import requests
from bs4 import BeautifulSoup
URL = 'https://stockx.com/de-de/air-jordan-1-retro-high-dark-mocha'
headers = {
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36'
}
r = requests.get(URL, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
soup.find('div', {'class':'detail'})
print(soup)
我想访问 class="detail",但是当执行它时它给了我整个站点的 html?我做错了什么?
解决方案
什么地方出了错
soup
你这样分配,soup = BeautifulSoup(r.text, 'html.parser')
所以它正在打印整个 html- 您想要分配和打印详细信息元素:
detail = soup.find('div', {'class':'detail'})
尝试这个:
import requests
from bs4 import BeautifulSoup
URL = 'https://stockx.com/de-de/air-jordan-1-retro-high-dark-mocha'
headers = {
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36'
}
r = requests.get(URL, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
detail = soup.find('div', {'class':'detail'})
print(detail)
推荐阅读
- python - 获取与 DOM 元素关联的事件列表
- php - 如何为 wordpress 制作 OG 图片
- mysql - 多个或查询中的顺序会影响相关性吗?
- haskell - 在构建中包含美味快速检查的问题
- reactjs - 垂直对齐 div 元素
- delphi - Delphi 10.3 中带有预览的文件打开对话框
- spring-boot - 添加执行器的依赖项后,Spring Boot 无法正常工作
- docker - 为 centos 8 容器设置 php-fpm
- flutter - 在 POST 请求后更新显示的数据
- email - smtp 错误:535 5.7.8 Go 中的 gmail 不接受用户名和密码