我在從論壇網站(每頁50行)刮取表格時遇到了一些困難。正如我寫的代碼所寫,95%的內容可以工作,但在粗體或斜體線出現時會添加表格中斷,但我無法獲得完整結果從BeautifulSoup對象中刪除標籤
大多數頁面都有類似這樣的標籤:
<table>
<td>
content_1
</td><td>
content_2
</td><td>
content_3
</td>
...
</table>
雖然當粗體或斜體短語存在時,無論出於何種原因隨機標籤添加和我只用元件的數量,直到標籤結束。
<table>
<td>
content_1
</td><td>
<b><i>content_2</b></i> *</table>*
</td><td>
content_3
</td>
...
</table>
我不確定爲什麼這個標籤出現(當我檢查網頁上的元素時,它不會出現)。
有沒有人有任何建議如何處理這個?我有一些想法,但他們都沒有解決。
轉換的beautifulsoup對象的字符串,然後刪除標記,並轉換回beautifulsoup - 還沒有完全還沒有工作,但似乎有點過多,會減慢程序...
只是跳過湯和使用pd.read_html - 還沒有得到它的工作。
或者如果有人對替代方法有任何建議,我們將不勝感激。謝謝!
編輯 - 計算它會幫助,如果我只是添加我的代碼。如果主塊有三個例子。首先不提供結果,其次是部分結果,第三是完整結果。
def get_page(URL):
'''
INPUT: url
OUTPUT: pandas dataframe with message board info
'''
content = requests.get(URL).content
soup = BeautifulSoup(content, "html.parser")
rows = list(soup.find('table', id="ctl00_CP1_gv"))
table_lst = []
for row in rows[2:-2]:
cell_lst = [cell for cell in list(row)[1:5]]
table_lst.append(cell_lst)
return pd.DataFrame(table_lst)
if __name__ == '__main__':
url1 = "https://investorshub.advfn.com/Cal-Bay-International-Inc-CBYI-5520/?NextStart=35092"
url2 = "https://investorshub.advfn.com/Cal-Bay-International-Inc-CBYI-5520/?NextStart=35099"
url3 = "https://investorshub.advfn.com/Cal-Bay-International-Inc-CBYI-5520/?NextStart=1000"
df1 = get_page(url1)
df2 = get_page(url2)
df3 = get_page(url3)
「......但是在出現粗體或斜體的行時會中斷...」請顯示打破的代碼和錯誤消息(如果有的話)。 – DyZ
道歉,'打破',是錯誤的詞選擇。它只是不提供其他頁面提供的完整結果。我將代碼添加爲示例頁面...... – schustda
該webite很混亂......您能澄清一下您試圖獲得的那些網站的哪一部分,可能會有更好的標籤可用嗎? – Tony