检查url在python 3中是否具有特定的字符串

时间:2018-10-28 05:46:13

标签: python python-3.x

我是python的新手,我无法弄清楚

在这段代码中,我需要检查网址是否带有http

for link in links:
    if "http" in link.get("href"):
        print("<a href='%s'>%s</a>" % (link.get("href"), link.text))

运行时出现此错误:

  

TypeError:“ NoneType”类型的参数不可迭代

我该如何解决? 预先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用string.find

但是看来您的问题是link.get("href")返回None。

您的链接可能没有"href"

答案 1 :(得分:1)

我不得不猜测你的背景到底是什么。但这可能会对您有所帮助。

您可以通过“ if var is None:”检查是否为None,然后继续循环。

但是我的建议是从基础教程开始,而不是直接进行一些具体的任务……这对您来说可能更容易:)

from bs4 import BeautifulSoup
import re

website = """#INSERT_HTML_CODE""" 
soup = BeautifulSoup(website, 'html.parser')

p = re.compile("https://")
soup = BeautifulSoup(website, 'html.parser')

soup_links = soup.find_all("a")
print(len(soup_links))

counter = 0

for link in soup_links:
    if link is None: # <---- Handle None value with continuing the loop
        continue

    if p.match(link.get("href", "")) is not None: # <--- Handle link element, if https is in href String.
        # If href is not existing. .get() returns "" and nothing is broken
        print("HTTPS found")
        print("<a href='%s'>%s</a>" % (link.get("href"), link.string) )
        print("")
        counter = counter + 1

print(counter)