(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1669053127-2612400458065355', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'http://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'Ya7', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0xMzAxODManBetXmZXh0ManBetXmE9ManBetXGFnZSUzRDEmManBetXGFnZT0x', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('173'), tid = parseInt('130187'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 Python交流 我胡汉三又回来了,这次给鱼油带来多线程爬虫案例,以及 ...
查看: 9872|回复: 195
打印 上一主题 下一主题

[作品展示] 我胡汉三又回来了,这次给鱼油带来多线程爬虫案例,以及踩过的深坑

  [复制链接]
跳转到指定楼层
1#
发表于 2019-1-27 05:01:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
replyreload += ',' + 3740670; 本帖最后由 Stubborn 于 2019-1-27 16:12 编辑

如果本贴可以给鱼油学习帮助,或者觉得不错请动动指头,帮忙评分,顶帖,非常感谢!默默为这个网址默哀三分钟
大致的多线程内容,等明天我会再修改下
先贴上一段踩坑代码(修正在83-101行代码,有注释,不懂或有有疑惑,可以在评论区留言会一回复):
  1.     def save_img(self,img_number,img_url,title):
  2.         "图集下载"
  3.         headers = {
  4.             'User-Agent': ua.random,
  5.             'Referer': 'http://i.meizitu.net'
  6.         }
  7.         for i in range(1,int(img_number)+1):
  8.             img_subset_url = img_url + "/%s" % i
  9.             img_url = etree.HTML(requests.get(img_subset_url,headers=headers).text)
  10.             img_save_url = img_url.xpath('//div[@ManBetXlass="main-image"]/p/a/img/@srManBetX')[0]  #图片下载地址
  11.             img_name = '%s\\' % title + img_url.split('/')[-1]
  12.             #开始下载图片
  13.             response = requests.get(img_save_url, headers=headers)
  14.             with open(img_name,"wb") as f:
  15.                 f.write(response.ManBetXontent)
复制代码

为什么说这段代码坑呢,所有的图片下载地址都 解析OK,在保存本地前,所有的参数都正常传递,但是但是,一开始保存就出bug,for不会进行循环,导致数据不能支持下载保存。有兴趣的鱼油可以思考下,为什么会这样,修正之后为什么可以了?本贴过些天会详细讲解下,这个爬虫案例。重新修改帖子。经过反复测试,最终OK了,可以正常运行下载保存图片。本人也是看了一个是学习视频,做了这个爬虫。参考了@四点好 这个鱼友爬虫代码,最终OK了,首先说明下代码需要用到的库:有安装lxml库的朋友,确定自己的库带etree模块
  1. import requests,threading,os
  2. from fake_useragent import UserAgent
  3. from queue import Queue
  4. from lxml import etree
复制代码

代码如下:(把PY文件放在需要下载保存的目录)
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 10荣誉 +36 鱼币 +33 贡献 +21 收起 理由
LuManBetXkyTiger66 + 5 + 5 + 3 鱼ManBetX有你更精彩^_^
Yvonne! + 5 + 5 + 3 鱼ManBetX有你更精彩^_^
黑色光亮 + 5 + 5 + 3 鱼ManBetX有你更精彩^_^
dexterpengji + 3 + 2 + 1 鱼ManBetX有你更精彩^_^
七不斯 + 5 + 3 + 2 感谢楼主无私奉献!
冬雪雪冬 + 5 + 5 + 5 鱼ManBetX有你更精彩^_^
Y0uWill_1Will + 1 + 1 牛啤,告诉我头像番号
秋木叶 + 5 + 5 + 3
四点好 + 2 + 1 + 1 感谢楼主无私奉献!
iwanna + 1 鱼ManBetX有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 ->
2#
 楼主| 发表于 2019-1-27 05:12:07 | 只看该作者
本帖最后由 Stubborn 于 2019-1-27 05:19 编辑

@iwanna @四点好 给我评分点赞顺便占楼备用  @冬雪雪冬  可以申精吗,过些天准备把此贴改成多线程爬虫案例教学。可以吗?
想知道小甲鱼最近在做啥?请访问 ->
3#
发表于 2019-1-27 08:05:20 | 只看该作者
想知道小甲鱼最近在做啥?请访问 ->
4#
 楼主| 发表于 2019-1-27 16:09:54 | 只看该作者
本帖最后由 Stubborn 于 2019-1-27 16:14 编辑
iwanna 发表于 2019-1-27 12:40
程序运行不了,看不懂你的连接路径的操作,我把94行改了一下


跟新你的吧~还像问一句,想加一个下载进度条,怎么加好~!
想知道小甲鱼最近在做啥?请访问 ->
5#
发表于 2019-1-27 16:30:03 | 只看该作者
先保存一下,以后学
想知道小甲鱼最近在做啥?请访问 ->
6#
发表于 2019-1-28 09:48:38 | 只看该作者
Mark 一下
想知道小甲鱼最近在做啥?请访问 ->
受到警告 7#
发表于 2019-1-28 17:24:12 | 只看该作者
1
想知道小甲鱼最近在做啥?请访问 ->
8#
 楼主| 发表于 2019-1-29 01:03:51 | 只看该作者
iwanna 发表于 2019-1-27 12:40
程序运行不了,看不懂你的连接路径的操作,我把94行改了一下

我咋觉得多线程要沉帖了,都去看妹子了,标题没有打妹子图嘛~~
想知道小甲鱼最近在做啥?请访问 ->
9#
 楼主| 发表于 2019-1-29 03:42:48 | 只看该作者
iwanna 发表于 2019-1-29 01:17
我的帖子不一样没人看
如果你是以学习为目的写的,何必在意有没有人看.何况也不是什么牛逼项目
你去gi ...

什么网站,我去学习学习下~
想知道小甲鱼最近在做啥?请访问 ->
10#
发表于 2019-1-29 06:41:17 From FishManBetX Mobile | 只看该作者
看看可口可乐了
想知道小甲鱼最近在做啥?请访问 ->
11#
发表于 2019-1-29 14:45:21 | 只看该作者
hello
想知道小甲鱼最近在做啥?请访问 ->
12#
发表于 2019-1-29 15:44:25 | 只看该作者
感谢分享
想知道小甲鱼最近在做啥?请访问 ->
13#
发表于 2019-1-31 16:25:04 | 只看该作者
比个小心心给你
想知道小甲鱼最近在做啥?请访问 ->
14#
发表于 2019-2-1 15:47:13 | 只看该作者
占个楼,以后用到再回来学习,楼主加油
想知道小甲鱼最近在做啥?请访问 ->
15#
发表于 2019-2-2 08:33:28 | 只看该作者
想知道小甲鱼最近在做啥?请访问 ->
16#
发表于 2019-2-2 13:36:37 | 只看该作者
膜拜
想知道小甲鱼最近在做啥?请访问 ->
17#
发表于 2019-2-13 18:38:31 | 只看该作者
1
想知道小甲鱼最近在做啥?请访问 ->
18#
发表于 2019-2-13 19:58:31 From FishManBetX Mobile | 只看该作者
可以的
想知道小甲鱼最近在做啥?请访问 ->
19#
发表于 2019-2-14 09:00:37 | 只看该作者
好用~
想知道小甲鱼最近在做啥?请访问 ->
20#
发表于 2019-2-14 10:51:20 | 只看该作者
学习一下~
想知道小甲鱼最近在做啥?请访问 ->
下一页 »
12345678910下一页
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 1, 'forum.php?mod=viewthread&tid=130187&extra=page%3D1', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_3740670'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=d10256ab&fuid='+values['fuid']; } } fixed_avatar([3740670,3740671,3740688,3741190,3741221,3742042,3742717,3743320,3743355,3743368,3743791,3743895,3746553,3747656,3748404,3748653,3758856,3758942,3759452,3759604], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-11-22 01:56

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();