簡體   English   中英

BeautifulSoup找不到包含某些文本的HTML標簽

[英]BeautifulSoup cannot find a HTML tag that contains certain text

我只想使用正則表達式來檢索HTML字符串中所有帶有“ //”的元素,而我遵循以下問題的答案: 使用BeautifulSoup查找包含某些文本的HTML標簽

然后我編寫一個類似的代碼:

from BeautifulSoup import BeautifulSoup
import re

html_text = \
"""
<html>
    <!--&lt;![endif]-->
    <head>
        <link rel="stylesheet" href="//abc.com/xyz" />
        <meta rel="stylesheet" href="//foo.com/bar" />
    </head>
</html>
"""

soup = BeautifulSoup(html_text)

for elem in soup(text=re.compile(r'//')):
    print elem

我希望我得到的結果如下:

//abc.com/xyz
//foo.com/bar

但是我什么也沒收到。 我不知道為什么他們的測試用例可以工作,但是我不知道,是否有任何錯誤,或者我錯過了腳本中的某些內容?

屬性設置錯誤

soup = BeautifulSoup(html_text, 'lxml')

for elem in soup(href=re.compile(r'//')):
    print elem.get('href')

注釋中問題的提取方法,在找出哪個標簽包含數據之后,您需要解析數據。

def has_requires_chars(tag):
    value_list = []
    attrs_value = tag.attrs.values()
    for avalue in attrs_value:
        if type(avalue) is list:
            value_list = value_list + avalue
        else:
            value_list.append(avalue)
    for value in value_list:
        if "//" in value:
            return True
    return False

soup = BeautifulSoup(html_text, 'lxml')
for elem in soup.find_all(has_requires_chars):
    print elem

暫無
暫無

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

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