簡體   English   中英

如何通過Beautiful Soup在href中抓取文本?

[英]How to scrape text in a href by Beautiful Soup?

我有一個格式為<a href="javascript:ShowImg('../UploadFile/Images/c/1/B_27902.jpg');">的 href ,我想用'../UploadFile/Images/c/1/B_27902.jpg' 我用了一個愚蠢的方法來獲取它:(我想知道是否有更簡單的方法來獲取它。

url = '<a href="javascript:ShowImg('../UploadFile/Images/c/1/B_27902.jpg');">'
html = url.get('href')
html = html.replace('javascript:ShowImg(', '').replace(');', '')

原始標簽如下:

<a href="javascript:ShowImg('../UploadFile/Images/c/1/B_27902.jpg');">
<img height="110" onerror="this.src='../UploadFile/Images/no_pic_big.jpg';"
src="../UploadFile/Images/c/1/S_27902.jpg" width="170"/>
</a>

BeautifulSoup可以在搜索元素時將編譯的正則表達式模式應用於屬性值。 然后,您可以使用相同的模式來提取所需的部分:

import re
from bs4 import BeautifulSoup

data = """
<a href="javascript:ShowImg('../UploadFile/Images/c/1/B_27902.jpg');">
<img height="110" onerror="this.src='../UploadFile/Images/no_pic_big.jpg';"
src="../UploadFile/Images/c/1/S_27902.jpg" width="170"/>
</a>
"""

soup = BeautifulSoup(data, "html.parser")
pattern = re.compile(r"javascript:ShowImg\('(.*?)'\);")

href = soup.find('a', href=pattern)["href"]
link = pattern.search(href).group(1)
print(link)  # prints ../UploadFile/Images/c/1/B_27902.jpg

暫無
暫無

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

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