亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

_Scrape_ 塊引用 bs4 后的文本

_Scrape_ 塊引用 bs4 后的文本

小怪獸愛吃肉 2023-06-06 14:46:11
我在 HTML 中有這樣的東西:<p align="left"><strong><tt>        some text:</tt></strong><tt> (8/4)</tt><a href="some link"><tt>some other text</tt></a><tt>, (9/4)</tt><a href="some other link"><tt><br/>        some text:</tt></strong><tt>, (19/6)</tt><!--a href="some link in comment"--><tt>text after comment</tt></p></blockquote></blockquote><tt>, </tt><a href="link i want"><tt>text i want</tt></a><strong><tt><br/>...</p>        我在 Python 中的代碼:page = requests.get(site)soup = BeautifulSoup(page.content, 'html.parser')rounds = soup.find('p', align="left")matches_links = rounds.find_all('a')我得到了一些評論和文本的所有鏈接。之后我什么也得不到</blockquote></blockquote>。這兩個塊引用在頁面代碼中是不可見的,只有當我調試我的 Python 代碼時我才能在soup. 我有soup所有 HTML 代碼,但rounds代碼以<tt>text after comment</tt></p>.有什么方法可以獲得“我想要的鏈接”和“我想要的文字”?
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

如果您查看 HTML 代碼,您會看到有</p>before </blockquote></blockquote>。這意味著您的變量rounds不包含您想要的鏈接。<a>在此標簽后搜索下一個<p>:


from bs4 import BeautifulSoup



txt = '''

<p align="left"><strong><tt>

        some text:</tt></strong><tt> (8/4)</tt><a href="some link"><tt>some other text</tt></a><tt>, (9/4)</tt><a href="some other link"><tt><br/>

        some text:</tt></strong><tt>, (19/6)</tt><!--a href="some link in comment"--><tt>text after comment</tt></p></blockquote></blockquote><tt>, </tt><a href="link i want"><tt>text i want</tt></a><strong><tt><br/>

...

</p>

'''


soup = BeautifulSoup(txt, 'html.parser')


matched_link = soup.select_one('p[align="left"] ~ a')

print(matched_link)

印刷:


<a href="link i want"><tt>text i want</tt></a>


查看完整回答
反對 回復 2023-06-06
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號