python - 使用 Python beautifulSoup 抓取特定的 dd 项目

标签 python web-scraping beautifulsoup

我正在尝试使用 Python 从网站中提取特定的“dd”元素

headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '\
           'AppleWebKit/537.36 (KHTML, like Gecko) '\
           'Chrome/75.0.3770.80 Safari/537.36'}

url = "https://www.ranger5g.com/forum/threads/pre-collision-assist.3239"
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'html.parser')


vehicle=[]

for i in soup.findAll("div", class_="message-userExtras"):
    for item in soup.find_all("dd")[::-1]:
        vehicle.append(item.get_text())
print(vehicle)

我试图从网址中仅提取车辆列表,我的输出应如下所示

2019 Ford Ranger XLT FX4
2019 Ford Ranger Lariat FX4, 1973 Mercury Capri
Tahoe/Tundra/Fusion
2019 Ford Ranger Lariat - Saber; 2014 GMC Terrain

但是我的结果并不是我所期望的

最佳答案

使用正则表达式 re 并搜索带有文本 Vehicledt 标记,然后找到下一个 dd 标记。

import re
from bs4 import BeautifulSoup
import requests
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '\
           'AppleWebKit/537.36 (KHTML, like Gecko) '\
           'Chrome/75.0.3770.80 Safari/537.36'}

url = "https://www.ranger5g.com/forum/threads/pre-collision-assist.3239"
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'html.parser')

for item in soup.find_all("div",class_='message-userExtras'):
    print(item.find('dt',text=re.compile("Vehicle")).find_next('dd').text.strip())

输出:

2019 Ford Ranger XLT FX4
2019 Ford Ranger Lariat FX4, 1973 Mercury Capri
Tahoe/Tundra/Fusion
2019 Ford Ranger Lariat - Saber; 2014 GMC Terrain
2019 Ford Ranger Lariat FX4, 1973 Mercury Capri
2019 Ranger Lariat - 2019 Honda CRV Touring
2019 Ford Ranger XLT FX4
2019 Ford Ranger Lariat FX4, 1973 Mercury Capri
2019 Ranger Lariat SuperCab
2019 Ranger Lariat
Ranger Lariat
2019 Ford Ranger Lariat
Ranger Lariat
Ranger Lariat
2019 Ranger XLT 301A SuperCrew 4X4 2015 Ecoboost Mustang 50 Year Appereance Package convertible

关于python - 使用 Python beautifulSoup 抓取特定的 dd 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60851475/

相关文章:

python - 使用 scrapy(和 selenium?)抓取动态生成的数据

javascript - 如何让 VBA 提交 javascript 表单?

python - 如何访问亚马逊类别列表的第 101 页

python - 来自 : can't read/var/mail/BeautifulSoup 的 BS4 和 BeautifulSoup 错误

python - 通过python在csv文件的两列数据之间创建不同的组合/模式

python - 余弦相似度产生 'nan' 值 pt.II

javascript - 提交时如何知道 JSP 页面中正在执行的页面或调用

python - lxml 中编码的大写 html 标签

python - BeautifulSoup4 的 Insert_after() 函数意外工作

Python:BeautifulSoup按其类在div标签之间提取字符串