我是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”类型的参数不可迭代
我该如何解决? 预先感谢您的帮助。
答案 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)