簡體   English   中英

Python 美湯 select 屬性中的文字

[英]Python beautiful soup select text in attrs

下面是我要解析的HTML代碼的例子:

<td style="padding-left:5px;" title="col1 : val1
 col2 : val2">

有幾行。 我正在使用漂亮的湯通過選擇“td”來解析 HTML 代碼,如下所示

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')

tbody=table.select_one('tbody')
tds = tbody.find_all("td")

在此示例中,如何將 col1=val1, col2=val2 提取為 dataframe? 這對我來說很難,因為價值觀在屬性中。

col1   col2
==========
val1   val2
val1-2 val2-2
.
.
.

我試試這個

tds.attrs['title']

但我的代碼不工作。

給我提示。。

根據您提供的數據,我使用re分離出title值,將它們放入dict中並將其轉換為dataframe。

我添加了一個額外的<td>來模擬從所有<td>獲取數據。

import re
import pandas as pd
from bs4 import BeautifulSoup
s = '''<td style="padding-left:5px;" title="col1 : val1 col2 : val2">Data1</td>
 <td style="padding-left:5px;" title="col1 : val3 col2 : val4">Data2</td>'''

soup = BeautifulSoup(s, 'lxml')
tds = soup.find_all('td')
d = {'col1': [], 'col2': []}
for i in tds:
    title = i['title'].strip()
    f = re.findall(r'col1\s:\s(.*)\scol2\s:\s(.*?)$',title)[0]
    d['col1'].append(f[0])
    d['col2'].append(f[1])
    
df = pd.DataFrame(d)
print(df)
   col1  col2
0  val1  val2
1  val3  val4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM