鱼C论坛

 找回密码
 立即注册
查看: 2647|回复: 13

~~~~(>_<)~~~~新手帮别人解答问题,但是被新的问题难到了

[复制链接]
发表于 2017-3-12 20:08:06 | 显示全部楼层 |阅读模式

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

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

x
我是一个新手,今天在论坛上看到一个求助帖,本着助人为乐的心态,去帮他把程序改了改,结果产生新的问题,下载的图片有时候是正常的,但更多的是1KB大小。 原贴链接:这个爬虫总是报错,请大神帮帮忙
http://bbs.fishc.com/thread-84061-1-1.html
(出处: 鱼C论坛)
下面是我的代码,在pycharm上运行的:
#coding=utf-8
import urllib
import re
url = 'http://jandan.net/ooxx'
page = urllib.urlopen(url)
html = page.read()
#print html
req = r'<img src="//(.*?)" />'
reg = re.compile(req)
img_addrs = re.findall(reg,html)
print img_addrs
for i in xrange(0,len(img_addrs)):
    img_addrs[i] = "http://"+img_addrs[i]
print img_addrs
t = len(img_addrs)
print t
x = 1
for img_url in img_addrs:
    try:
        urllib.urlretrieve(img_url,'%s.jpg' %x)
        x+=1
        print "下载完成第%d张图片:%s" %(x,img_url)
    except Exception, e:
        print "下载图片失败:%s" %(img_url)
print '报告:下载完成!'
新手求大神帮忙。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-12 20:11:01 | 显示全部楼层
@猥琐不是错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-12 20:45:11 | 显示全部楼层
╮(╯▽╰)╭,我重新用request模块写了个,urlli模块不太会用。
#coding=utf-8
import re
import requests
url = 'http://jandan.net/ooxx'
html = requests.get(url).text
pic_url = re.findall(r'<img src="//(.*?)" />',html,re.S)
print pic_url #测试正则表达式是否成功
for i in xrange(0,len(pic_url)):
    pic_url[i] = "http://"+pic_url[i]
print pic_url #测试是否获取到图片链接
t = len(pic_url)
print t #图片的数量
i = 0
for each in pic_url:
    try:
        pic= requests.get(each, timeout=10)
    except requests.exceptions.ConnectionError:
        print '【错误】当前图片无法下载'
        continue
    string = '%s.jpg' %i
    fp = open(string,'wb')
    fp.write(pic._content)
    fp.close()
    i += 1
print '下载完成'
这个是成功的。但是为嘛urllib下载的是1KB。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-3-13 10:14:42 | 显示全部楼层
本帖最后由 lumber2388779 于 2017-3-13 10:25 编辑
文明的读书人 发表于 2017-3-12 20:45
╮(╯▽╰)╭,我重新用request模块写了个,urlli模块不太会用。

这个是成功的。但是为嘛urll ...


复制你的代码测了下
发现xrange(0,len(pic_url)):这里写错了range吧
去掉后我下载是正常的 图片基本都正常可以访问,你是不是网速问题,还是防火墙的问题
我是直接用python本身的idle运行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 13:40:21 | 显示全部楼层
lumber2388779 发表于 2017-3-13 10:14
复制你的代码测了下
发现xrange(0,len(pic_url)):这里写错了range吧
去掉后我下载是正常的 图片基本 ...

xrange与range没啥区别。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 14:18:57 | 显示全部楼层
文明的读书人 发表于 2017-3-13 13:40
xrange与range没啥区别。。。

我用的是3.6版本xrange被取消了 我运行是没有问题的 下载一切正常
你试下用python原生的idle试下下载正常否
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 16:04:13 | 显示全部楼层
估计是我的网络有问题 我用3.6的idle运行了一下。。。
搜狗截图17年03月13日1601_1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 16:16:23 | 显示全部楼层
本帖最后由 deadofpeople 于 2017-3-13 16:27 编辑

是不是你ip被jandan封了,试试设置user-agent,设置间隔时间下载看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 16:22:32 | 显示全部楼层
deadofpeople 发表于 2017-3-13 16:16
是不是你ip被jandan封了,试试价格user-agent,设置间隔时间下载看看

ip被封了,不可能吧,我用另外一个程序,也就是二楼的那个程序,能爬取,同一台电脑。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 16:30:50 | 显示全部楼层
正常,python2.7
QQ截图20170313162952.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 16:44:45 | 显示全部楼层

哪种方法,用没用user-agent
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 16:50:30 | 显示全部楼层
文明的读书人 发表于 2017-3-13 16:44
哪种方法,用没用user-agent

就是你贴的程序,urllib
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-13 16:55:25 | 显示全部楼层
为嘛我只能下载1KB,早知道我就用python2的idle试试,上面那位仁兄用python3的idle试的,我也用3,为了兼容,又重新修改程序。。。心累,还是下载不了。。。
我估计是我网络问题,但具体是什么,由什么产生还是不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 22:28:23 | 显示全部楼层
本帖最后由 lumber2388779 于 2017-3-13 22:46 编辑
文明的读书人 发表于 2017-3-13 16:55
为嘛我只能下载1KB,早知道我就用python2的idle试试,上面那位仁 ...


你检查下你的电脑防火墙是不是打开了 或者是不是有什么杀毒软件给管控了
我在家在公司都可以 中间貌似有一张只有1.69K其他都是正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-2-11 09:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表