BS4 | Python |使用多个值在div中刮取特定数据
我对Python非常陌生,但我已经开始尝试使用BS4进行web抓取 虽然取得了一些成功,但我现在正在进行一个新的个人项目,我正在从一个HTML文件为AutoTrader编制索引 到目前为止,我能勉强获得我需要的所有价值,但只有一个。 我已经找过了,找不到解决办法 我需要从数据payment province=BC中提取省BC 从下面的代码BS4 | Python |使用多个值在div中刮取特定数据,python,beautifulsoup,Python,Beautifulsoup,我对Python非常陌生,但我已经开始尝试使用BS4进行web抓取 虽然取得了一些成功,但我现在正在进行一个新的个人项目,我正在从一个HTML文件为AutoTrader编制索引 到目前为止,我能勉强获得我需要的所有价值,但只有一个。 我已经找过了,找不到解决办法 我需要从数据payment province=BC中提取省BC 从下面的代码 <div class="asLowAs payment-tag-disclaimer" data-payment-tag-adid=
<div class="asLowAs payment-tag-disclaimer" data-payment-tag-adid="66736200" data-payment-province="BC" data-payment-tag-isnew="False" style="display: none" data-toggle="popover">
输出:
</span>, <span itemprop=""itemOffered"">
2019 Hyundai Elantra GT | Bluetooth | Backup Camera | Heated Seats | Blind
为您的第一个问题试一试:
import requests
from bs4 import BeautifulSoup
import re
.....
province_re = re.compile(r'[A-Z]{2}')
location = soup.find_all('div', {'data-payment-province': province_re})
for loc in location:
print(loc.attrs['data-payment-province'])
一个更干净的方法是:
divs= soup.find_all('div')
for div in divs:
if div.has_attrs('data-payment-province'):
print(div['data-payment-province'])
要获取元素的文本,可以使用以下命令:
elements = soup.find_all(['span','element1','element2'])
for element in elements:
fulltextofelement = element.find(text=True, recursive=True)
onlyparenttext = element.find(text=True, recursive=False)
成功了!我还不明白为什么,但我要研究一下。非常感谢。
divs= soup.find_all('div')
for div in divs:
if div.has_attrs('data-payment-province'):
print(div['data-payment-province'])
elements = soup.find_all(['span','element1','element2'])
for element in elements:
fulltextofelement = element.find(text=True, recursive=True)
onlyparenttext = element.find(text=True, recursive=False)