簡體   English   中英

Python + BeautifulSoup-通過搜索條件提取文本

[英]Python + BeautifulSoup - Text extraction by searching criteria

一個文件包含如下所示的HTML代碼(以下段落中固定了“ Registration”和“ Flying”一詞):

<TR>
<TD class=CAT2 width="10%">Registration</TD>
<TD class=CAT1 width="20%">02 Mar 2006</TD></TR>

<TR>
<TD class=CAT2 width="10%">Flying</TD>
<TD class=CAT1 width="20%">24 Jun 2005</TD></TR>

我想提取它們並放入:

注冊2006年3月2日

飛行2005年6月24日

我正在使用BeautifulSoup find_next_sibling但是它什么也不返回。 怎么了

from bs4 import BeautifulSoup

url = r"C:\example.html"
page = open(url)
soup = BeautifulSoup(page.read())

aa = soup.find_next_sibling(text='Registration')

print aa

嘗試這個

soup.find(text="Registration").findNext('td').contents[0]

這行代碼:

aa = soup.find_next_sibling(text='Registration')

沒有像您期望的那樣在HTML中返回節點。 相反,它返回一個NoneType 相反,您要做的是找到帶有text='Registration'的元素,使其成為父級,並獲取父級的下一個同級。

aa = soup.find(text='Registration')
par = aa.parent
print par.next_sibling.string

您還可以通過以下方式實現輸出:

soup = BeautifulSoup(page.read())

row_1 = soup.find('tr')
td = row_1.find('td')
string_1 = td.string + ' ' + td.next_sibling.string #Registration 02 Mar 2006

row_2 = row_1.next_sibling
td = row_2.find('td')
string_2 = td.string + ' ' + td.next_sibling.string #Flying 24 Jun 2005

暫無
暫無

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

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