我胡汉三又回来了,这次给鱼油带来多线程爬虫案例,以及踩过的深坑
本帖最后由 Stubborn 于 2019-1-27 16:12 编辑如果本贴可以给鱼油学习帮助,或者觉得不错请动动指头,帮忙评分,顶帖,非常感谢!默默为这个网址默哀三分钟{:10_250:} {:10_250:} {:10_250:}
大致的多线程内容,等明天我会再修改下
先贴上一段踩坑代码(修正在83-101行代码,有注释,不懂或有有疑惑,可以在评论区留言会一回复):
def save_img(self,img_number,img_url,title):
"图集下载"
headers = {
'User-Agent': ua.random,
'Referer': 'http://i.meizitu.net'
}
for i in range(1,int(img_number)+1):
img_subset_url = img_url + "/%s" % i
img_url = etree.HTML(requests.get(img_subset_url,headers=headers).text)
img_save_url = img_url.xpath('//div[@class="main-image"]/p/a/img/@src')#图片下载地址
img_name = '%s\\' % title + img_url.split('/')[-1]
#开始下载图片
response = requests.get(img_save_url, headers=headers)
with open(img_name,"wb") as f:
f.write(response.content)
为什么说这段代码坑呢,所有的图片下载地址都 解析OK,在保存本地前,所有的参数都正常传递,但是但是,一开始保存就出bug,for不会进行循环,导致数据不能支持下载保存。有兴趣的鱼油可以思考下,为什么会这样,修正之后为什么可以了?本贴过些天会详细讲解下,这个爬虫案例。重新修改帖子。经过反复测试,最终OK了,可以正常运行下载保存图片。本人也是看了一个是学习视频,做了这个爬虫。参考了@四点好 这个鱼友爬虫代码,最终OK了,首先说明下代码需要用到的库:有安装lxml库的朋友,确定自己的库带etree模块
import requests,threading,os
from fake_useragent import UserAgent
from queue import Queue
from lxml import etree
代码如下:(把PY文件放在需要下载保存的目录)
**** Hidden Message ***** 本帖最后由 Stubborn 于 2019-1-27 05:19 编辑
@iwanna @四点好 给我评分点赞{:10_250:}{:10_254:}{:10_281:}顺便占楼备用@冬雪雪冬可以申精吗,过些天准备把此贴改成多线程爬虫案例教学。可以吗? @冬雪雪冬 本帖最后由 Stubborn 于 2019-1-27 16:14 编辑
iwanna 发表于 2019-1-27 12:40
程序运行不了,看不懂你的连接路径的操作,我把94行改了一下
跟新你的吧~{:10_254:}{:10_254:}还像问一句,想加一个下载进度条,怎么加好~!{:10_266:} 先保存一下,以后学 Mark 一下 1 iwanna 发表于 2019-1-27 12:40
程序运行不了,看不懂你的连接路径的操作,我把94行改了一下
我咋觉得多线程要沉帖了,都去看妹子了,标题没有打妹子图嘛{:10_266:}{:10_266:}{:10_266:}{:10_266:}~~ iwanna 发表于 2019-1-29 01:17
我的帖子不一样没人看
如果你是以学习为目的写的,何必在意有没有人看.何况也不是什么牛逼项目
你去gi ...
什么网站,我去学习学习下~{:10_297:} 看看可口可乐了 hello 感谢分享 比个小心心给你 占个楼,以后用到再回来学习,楼主加油 {:10_277:} 膜拜 1 可以的 好用~ 学习一下~