【发布时间】:2018-11-16 18:28:05
【问题描述】:
我在使用以下代码从网站提取的属性中的元素中提取特定值时遇到了一些问题:
from bs4 import BeautifulSoup
import requests
# Get mills and estates information from dashboard
url = 'http://nestetraceabilitydashboard.com/nestes-palm-oil-dashboard'
page = requests.get(url).text
soup = BeautifulSoup(page, "html.parser")
divList = soup.findAll('div', attrs={"class" : "map-item estate-map-item"})
data = {}
for div in divList:
for k,v in div.attrs.items():
if k not in ('class'):
data[k] = data.get(k, []) + [v]
df = pd.DataFrame(data)
divList 的摘录如下:
[<div class="map-item estate-map-item" data-country="Indonesia" data-latitude="1.926944000" data-location="Riau" data-longitude="99.906390000" data-mills="Aek Nabara" id="map_item_5600">(Aek Nabara) - Aek Nabara</div>,
<div class="map-item estate-map-item" data-country="Indonesia" data-latitude="0.429444444" data-location="Riau" data-longitude="101.818611100" data-mills="Buatan I " id="map_item_5601">(Buatan I/II ) - Buatan</div>,
但是,输出 dict 和 dataframe 会删除 id 中 map_item_XXXX 之后的所有内容。
我将如何仅在我的 dict 中的引号之外获取值,然后在 dataframe id 列中获取值,例如 (Aek Nabara) - Aek Nabara 用于上面 divList 中的第一项?
【问题讨论】:
-
您是否只是想从
div中获取文本?
标签: python beautifulsoup html-parsing