我的代碼如下,提取所有元素for link in soup.find_all('a', href=True): print(link['href'])輸出https://www.example.com/author/1/https://www.example.com/about/2/https://www.example.com/author/3/(link['href']) 的類型<cls str><cls str><cls str>我需要提取包含“about”的網(wǎng)址我嘗試用print(link['href'] if 'about' in link)哪個(gè)拋出錯(cuò)誤我的預(yù)期結(jié)果https://www.example.com/about/2/
2 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
條件表達(dá)式需要一個(gè)else子句來(lái)指定當(dāng)條件為 false 時(shí)表達(dá)式應(yīng)返回的內(nèi)容。
但在這種情況下您不想打印任何內(nèi)容。因此,請(qǐng)if在print()調(diào)用周?chē)褂寐暶鳌?/p>
for link in soup.find_all('a', href=True):
if 'about' in link['href']:
print(link['href'])
您也可以在通話中進(jìn)行匹配soup.find_all()。
for link in soup.find_all('a', href=re.compile(r'about')):
print(link['href'])

30秒到達(dá)戰(zhàn)場(chǎng)
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您正在鏈接中搜索“about”,而“about”一詞似乎在鏈接['href']中找到。因此嘗試如下更新 if 條件。
print(link['href'] if 'about' in link['href'] else '')
添加回答
舉報(bào)
0/150
提交
取消