簡體   English   中英

Python如果字符串包含在href中

[英]Python If String Contains in href

這是我的python代碼。

r = requests.get("myurl")
data = r.text
soup = BeautifulSoup(data, "lxml")
texttmp = ""
for link in soup.find_all('a'):
    image = link.get("href")
    if ".jpg" in image:
        print(image)

當我嘗試運行此代碼時,出現以下錯誤。 我怎樣才能解決這個問題?

TypeError                                 Traceback (most recent call last)
<ipython-input-35-618698d3a2d7> in <module>()
     11 for link in soup.find_all('a'):
     12     image = link.get("href")
---> 13     if ".jpg" in image:
     14         print(image)
     15 

TypeError: argument of type 'NoneType' is not iterable

它告訴您的是,找不到href字符串。 因此,在查看".jpg"是否在圖片標簽中之前,需要檢查“ None ".jpg"

 if image and ".jpg" in image:

但是,這不是唯一的事情。 你也想get從找到的鏈接節點。 您應該檢查a是否具有href屬性(有些沒有,請參見Bootstrap以獲取示例!):

 for link in soup.find_all('a'):
   if link.has_attr('href'):
     #rest of code

看到這篇SO帖子和其他類似的帖子 (我也應該先用Google搜索。)

除了表示指向其他資源的鏈接之外,html錨標記<a ...>還可以充當文檔中某個位置的命名標記,即所謂的名稱標記<a name=whatever> ,從而可以將標記的位置使用URL http://example.com/#whatever的片段的鏈接的目標

這可能是您遇到的,因為名稱標簽沒有href來指示它們指向的資源。

您需要檢查href是否返回None,如果不是,則跳過該返回的標簽。

祝好運。

暫無
暫無

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

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