【发布时间】:2022-01-27 16:48:53
【问题描述】:
我正在编写我的第一个“真实”项目,一个网络爬虫,但我不知道如何解决这个错误。这是我的代码
import requests
from bs4 import BeautifulSoup
def main_spider(max_pages):
page = 1
for page in range(1, max_pages+1):
url = "https://en.wikipedia.org/wiki/Star_Wars" + str(page)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll("a"):
href = "https://en.wikipedia.org/wiki/Star_Wars" + link.get("href")
print(href)
page += 1
main_spider(1)
这是错误
href = "https://en.wikipedia.org/wiki/Star_Wars" + link.get("href")
TypeError: must be str, not NoneType
【问题讨论】:
-
你检查过 link.get("href") 是否返回了一个字符串吗?您的代码没有正确缩进。
-
我很抱歉这么愚蠢,我似乎已经解决了它,但现在我遇到了一个新问题。我不是从页面中获取所有链接,而是一遍又一遍地获取原始页面的 url。
-
怎么来的?你缩进了 main_spider(1) 并且你不应该得到任何东西。或者你有两条 main_spider(1) 行,一条在函数本身?
-
@MSeifert 好的。对于本示例,link.get("href") 将返回 None。
标签: python