Python 如何将BeautifulSoup Div标记对象作为字典读取
这里是HTML和BeautifulSoup的新手,所以。 我读了一个有BS4的房地产网站,并设法在一个特定的Div类中获得了我想要的信息Python 如何将BeautifulSoup Div标记对象作为字典读取,python,html,dictionary,beautifulsoup,tags,Python,Html,Dictionary,Beautifulsoup,Tags,这里是HTML和BeautifulSoup的新手,所以。 我读了一个有BS4的房地产网站,并设法在一个特定的Div类中获得了我想要的信息 list_1_divs = soup.find_all('div', class_="ListingCell-AllInfo ListingUnit") BS4找到29个父div,每个都包含许多子div,但我想要的所有信息似乎都在父div中,所以我删除了它们的所有子div。当我打印变量“s_row”时,得到的父Div看起来像一个字符串,但
list_1_divs = soup.find_all('div', class_="ListingCell-AllInfo ListingUnit")
BS4找到29个父div,每个都包含许多子div,但我想要的所有信息似乎都在父div中,所以我删除了它们的所有子div。当我打印变量“s_row”时,得到的父Div看起来像一个字符串,但调试模式将“s_row”描述为{Tag:3},其中包含attrs={dict:13},然后在调试窗口的一个结构良好的列表中列出我想要的元素
如何在{Tag}对象内打印(或传递给Pandas)底层字典?我的最终目标是有一个包含13个字典元素的表作为列,其中29行包含每个“s_行”的值。提前谢谢
代码:
如果我理解正确,您希望将每个属性提取为dataframe中的列:
import pandas as pd
import urllib.request
from bs4 import BeautifulSoup
wiki = "https://www.lamudi.com.ph/metro-manila/makati/rockwell-1/buy/"
page = urllib.request.urlopen(wiki)
soup = BeautifulSoup(page, features='html.parser')
list_divs = soup.find_all('div', class_="ListingCell-AllInfo ListingUnit")
all_data = []
for s_row in list_divs:
all_data.append({})
for a in s_row.attrs:
if a == 'class':
continue
all_data[-1][a] = s_row[a]
df = pd.DataFrame(all_data)
print(df)
印刷品:
data-price data-category data-subcategories data-car_spaces data-bedrooms ... data-price_range data-sqm_range data-rooms_total data-land_size data-subdivisionname
0 82000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
1 9800000 condominium ["condominium","studio"] NaN 1 ... NaN NaN NaN NaN NaN
2 48990000 condominium ["condominium","double-bedroom"] NaN 2 ... 37.8M-48.9M 93-121 sqm NaN NaN NaN
3 73730000 condominium ["condominium","3-bedroom"] NaN 3 ... 45.3M-73.7M 126-202 sqm NaN NaN NaN
4 26600000 condominium ["condominium","single-bedroom"] NaN 1 ... 26.6M 62 sqm NaN NaN NaN
5 27500000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
6 130000000 condominium ["condominium","penthouse-1"] NaN 4 ... NaN NaN NaN NaN NaN
7 78000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
8 55000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN 165 3 NaN NaN
9 19000000 condominium ["condominium","single-bedroom"] 1 1 ... NaN 64 1 NaN NaN
10 30000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
11 14000000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
12 50000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
13 48000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
14 27000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
15 36000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
16 52000000 house ["house","single-family-house"] 4 3 ... NaN NaN NaN 110 Palm Village
17 48000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN 4 NaN NaN
18 37500000 condominium ["condominium","double-bedroom"] 2 2 ... NaN NaN NaN NaN NaN
19 19000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
20 66700000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
21 16500000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
22 12900000 condominium ["condominium","single-bedroom"] 1 1 ... NaN NaN NaN NaN NaN
23 20000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
24 17300000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
25 25000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
26 14000000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
27 32000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
28 38000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
[29 rows x 17 columns]
那太完美了!非常感谢!
data-price data-category data-subcategories data-car_spaces data-bedrooms ... data-price_range data-sqm_range data-rooms_total data-land_size data-subdivisionname
0 82000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
1 9800000 condominium ["condominium","studio"] NaN 1 ... NaN NaN NaN NaN NaN
2 48990000 condominium ["condominium","double-bedroom"] NaN 2 ... 37.8M-48.9M 93-121 sqm NaN NaN NaN
3 73730000 condominium ["condominium","3-bedroom"] NaN 3 ... 45.3M-73.7M 126-202 sqm NaN NaN NaN
4 26600000 condominium ["condominium","single-bedroom"] NaN 1 ... 26.6M 62 sqm NaN NaN NaN
5 27500000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
6 130000000 condominium ["condominium","penthouse-1"] NaN 4 ... NaN NaN NaN NaN NaN
7 78000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
8 55000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN 165 3 NaN NaN
9 19000000 condominium ["condominium","single-bedroom"] 1 1 ... NaN 64 1 NaN NaN
10 30000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
11 14000000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
12 50000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
13 48000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
14 27000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
15 36000000 condominium ["condominium","3-bedroom"] NaN 3 ... NaN NaN NaN NaN NaN
16 52000000 house ["house","single-family-house"] 4 3 ... NaN NaN NaN 110 Palm Village
17 48000000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN 4 NaN NaN
18 37500000 condominium ["condominium","double-bedroom"] 2 2 ... NaN NaN NaN NaN NaN
19 19000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
20 66700000 condominium ["condominium","3-bedroom"] 2 3 ... NaN NaN NaN NaN NaN
21 16500000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
22 12900000 condominium ["condominium","single-bedroom"] 1 1 ... NaN NaN NaN NaN NaN
23 20000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
24 17300000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
25 25000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
26 14000000 condominium ["condominium","single-bedroom"] NaN 1 ... NaN NaN NaN NaN NaN
27 32000000 condominium ["condominium","double-bedroom"] NaN 2 ... NaN NaN NaN NaN NaN
28 38000000 condominium ["condominium","double-bedroom"] 1 2 ... NaN NaN NaN NaN NaN
[29 rows x 17 columns]