python - 在 beautifulsoup4 中选择 div ID
问题描述
请放轻松,这是我的第一个 bs4 网络爬虫!我正在尝试为二手商品网站上的价格选择一个 div ID。这是价格框的检查元素部分:
<div class="price-box">
<div id="priceBox-price" class="price" itemprop="price" content="879,00">
€&nbsp;879,-
</div>
这是我的python代码:
import requests
import bs4
def scrape_site(url):
res = requests.get()
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
price = soup.find("div", class_= "price")
print(price)
print(price)
返回“无”。我尝试将许多类 ID 和其他 div ID 传递给soup.find
orsoup.select
但不幸的是我似乎无法从框中提取数字。
我还想在此页面上选择许多其他元素并将它们添加到已经初始化的全局可用列表中。传递soup.find
多个类 ID(或此处的任何解决方案)或将找到的soup
对象附加到列表中的多行更有效吗?
这是我想从中提取价格、颜色、位置和修改/发布日期的广告示例:
https://www.willhaben.at/iad/kaufen-und-verkaufen/d/serious-valparola-pro-rennrad-422463471/
任何帮助是极大的赞赏!
编辑:
无论我改变什么变量,.get
它都不起作用。这是我当前的完整代码,所有函数返回(没有.get
)都是“无”
from bs4 import BeautifulSoup
#list initialisation for data storage
name = []
address = []
colour = []
price = []
last_edited = []
def scrape_site(url):
page = requests.get(url)
soup = BeautifulSoup(page.content,'html.parser') #.get('content')
price = soup.find('div',{'itemprop':'price'})
print(price)
解决方案
尝试这个:
In [51]: from bs4 import *
In [52]: soup = BeautifulSoup(''' <div class="price-box">
...:
...: <div id="priceBox-price" class="price" itemprop="price" content="879,00">
...:
...: 879,-
...: </div>''', 'html.parser')
In [53]: soup.find('div',{'itemprop':'price'}).get('content')
Out[53]: '879,00'
根据您的评论:
import pandas ad pd
data = []
list_of_ad_urls = ['url1','url2', 'url3']
for url in list_of_ad_urls:
page = requests.get(url)
soup = BeautifulSoup(page.content,'html.parser')
required_item_1 = soup.find(logic to find element 1)
price = soup.find('div',{'itemprop':'price'}).get('content')
required_item_3 = soup.find(logic to find element 3)
data.append([required_item_1, required_item_2, required_item_3])
pd.DataFrame(data).to_csv('mydata.csv', index=False, header='h1,h2,h3'.split(','))
推荐阅读
- audio - FFMPEG:在具有预先存在的音频的视频文件中的指定时间附加音频文件不会导致添加
- swift - 尝试使用 Swift 在 macOS 中自定义通知
- kotlin - 如何访问自定义 Ktor JWT 挑战中的错误?
- java - Java中匿名类方法中的实例如何链接到形式参数(或推断)?
- swift - 已修复 - XCode Swift - 在按下返回键时关闭键盘没有任何作用
- laravel - 托管时 Laravel API Server 500 错误
- python - 生成和估计模型,如 IGARCH、FIARCH 或 HYGARCH
- asp.net-core - 部分视图中的模型为空 - asp.net core razor pages
- angular - 角度材料表:即使没有设置过滤器,如何始终激活过滤?
- ios - 在后台扫描 BLE 外设的 RSSI