本解决方法仅针对爬取豆瓣网时BeatuifulSoup的使用,其他仅供参考
def getData(baseurl): #访问baseurl
datalist = [] #定义为列表,是获取到网页上所有的数据
#调用爬取一个网页的函数,执行for循环
for i in range(0,10): #左闭右开
url = baseurl + str(i*25)
html = askurl(url) #应该有一个返回值的保存
soup = BeautifulSoup(html,"html.parser")
for item in soup.find_all('div',class_="item"):
print(item)
return datalist
当测试爬虫出现上述错误时的原因:
主要原因是html变量引用的是askurl函数,但我的askurl函数没有返回值。
部分代码:
except urllib.error.URLError as e :
if hasattr(e,"code"): #捕获一下,看看是哪类错误
print(e.code)
if hasattr(e,"reason"):
print(e.reason) #code和reason应该都是本来就有的变量吧
return html
引用的函数最后加一个返回值就好了