参考博客链接(1)https://blog.csdn.net/qq_21856335/article/details/80947690
(2)https://blog.csdn.net/pursuit_zhangyu/article/details/80556275
爬虫用到的函数
urllib.request.urlretrieve(link,filesavepath)
参数说明:
url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
其实 还有第三个和第四个函数
urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)
第三个参数,如果存在,则是一个回调函数,它将在建立网络连接时调用一次,并且在此后每个块读取后调用一次。这个回调函数将传递三个参数;到目前为止传输的块计数,以字节为单位的块大小,以及文件的总大小。第三个参数可能是-1,在旧的FTP服务器上,它不返回文件大小以响应检索请求。
reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
在我的爬虫代码中是
for image in imageEntityArray:
#img里面有src,超链接,也就是图片的url
link = image.get('src')
#文件要保存的路径,这里是保存在桌面 这里的命名就是从上面获得的id
filesavepath = '/Users/slq/Desktop/scenery/%s.jpg' % nameTitle
#下面这个函数用来设置HTTP或Socket访问超时,来防止爬虫抓取某个页面时间过长
#输入参数单位貌似是分钟
socket.setdefaulttimeout(30)
#下面函数的第一个参数是外部URL,第二个参数是文件的保存路径
urllib.request.urlretrieve(link,filesavepath)
print ("filesavepath")