学习豆瓣爬虫的时候,用到request的时候,一直报错下面这样
1

报错的代码(部分)

import request
import time
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
1
# 构造请求头信息
header = {
'User-Agent':'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'
}
# URL规律# https://www.douban.com/group/?start=0 第1页
# https://www.douban.com/group/?start=50 第2页
# start= (n-1)*50
# https://www.douban.com/group/?start=100 第3页def loadpage(fullurl,filename):
print('正在下载:',filename)
req =request.Request(fullurl,headers=header) # 发出请求
resp = urllib.request.urlopen(req).read() #返回的信息
return resp


网上搜的是因为导入模块格式不正确
应该是①
import urllib.request
要注意的是import的时候要导入的urllib.request,因为在python3.x中urllib中包含了urllib2等其他的类

②并且在调用的时候也要以urllib.request.urlopen(url)的形式调用

作者:dpengwang

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

改过之后成功!!!贴上完整的代码:

import urllib.request. #注意⚠️此处
import time
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
1
# 构造请求头信息
header = {
'User-Agent':'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'
}
# URL规律# https://www.douban.com/group/?start=0 第1页
# https://www.douban.com/group/?start=50 第2页 start= (n-1)*50
# https://www.douban.com/group/?start=100 第3页def loadpage(fullurl,filename):
print('正在下载:',filename)
req = urllib.request.Request(fullurl,headers=header) # 发出请求 ⚠️写urllib.request.Request
resp = urllib.request.urlopen(req).read() #返回的信息
return respdef writepage(html,filename):
print('正在保存:',filename) with open(filename,'wb') as f:
f.write(html)
print('----------------------------------------')
#构造URL
def douSpider(url,begin,end):
for page in range(begin,end+1): pn = (page-1)*50
fullurl = url +'start='+str(pn) #每次请求的完整的URL
filename = '/Users/yuan/Desktop/下载/第'+ str(page) +'页'+".html" #文件下载的位置 html = loadpage(fullurl,filename) #爬取网页 找
writepage(html,filename) #把获取到的网页信息写入到本地下载的位置 保存 if __name__ =='__main__':
begin = int(input('请输入起始页:'))
end = int(input('请输入结束页:')) url = 'https://tieba.baidu.com/f?'

douSpider(url,begin,end)
time.sleep(6)



成功运行✅