我想從具有某些特定類的 div 標簽中提取資訊。
類的格式為abc def jss238 xyz
現在,jss類號不斷變化,所以一段時間后,類會變成abc def jss384 xyz
提取資訊的最佳方法是什么,以便在標簽也發生變化時代碼不會中斷。
我使用的當前代碼是
val = soup.findAll('div', class_="abc def jss328 xyz")
我覺得正則運算式可以是一個好方法,但我也可以不使用 jss 類而只使用其他 3 個來搜索嗎?
uj5u.com熱心網友回復:
所以是的,您可以使用正則運算式來查找具有abc def <pattern of 3 letters and 3 digits> xyz
就個人而言,我會看看你是否可以從源頭獲取資料。當類發生這樣的變化時,通常是因為頁面是通過 javascript 呈現的,但它需要將資料放在那里并從某個地方獲取。如果您共享 url 和您所追求的資料,我可以看看是不是這樣。但這是正則運算式版本:
from bs4 import BeautifulSoup
import re
html = '''<div >jss238 text</div>
<div >jss384 text</div>
<div >doesn't match the pattern</div>'''
soup = BeautifulSoup(html, 'html.parser')
regex = re.compile('abc def \w{3}\d{3} xyz')
specialDivs = soup.find_all('div', {'class':regex})
for each in specialDivs:
print(f'html: {each}\tText: {each.text}')
輸出:
html: <div class="abc def jss238 xyz">jss238 text</div> Text: jss238 text
html: <div class="abc def jss384 xyz">jss384 text</div> Text: jss384 text
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/448293.html
標籤:Python python-3.x 网页抓取 美丽的汤
上一篇:單擊硒中的按鈕
