鱼C论坛

 找回密码
 立即注册
查看: 1620|回复: 4

[已解决]这个爬虫总是报错,请大神帮帮忙

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

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

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

x
import urllib
import re,os


url = 'http://jandan.net/ooxx'
page = urllib.urlopen(url)
html = page.read()
req = r'src="(.*?.jpg)"'
reg = re.compile(req)
img_addrs = re.findall(reg,html)

for each in img_addrs:
    filename = each.split('/')[-1]
    with open(filename, 'wb') as f:
        img = urllib.urlopen(each).read()
        f.write(img)
最佳答案
2017-3-12 20:46:34
  1. #coding=utf-8
  2. import re
  3. import requests
  4. url = 'http://jandan.net/ooxx'
  5. html = requests.get(url).text
  6. pic_url = re.findall(r'<img src="//(.*?)" />',html,re.S)
  7. print pic_url #测试正则表达式是否成功
  8. for i in xrange(0,len(pic_url)):
  9.     pic_url[i] = "http://"+pic_url[i]
  10. print pic_url #测试是否获取到图片链接
  11. t = len(pic_url)
  12. print t #图片的数量
  13. i = 0
  14. for each in pic_url:
  15.     try:
  16.         pic= requests.get(each, timeout=10)
  17.     except requests.exceptions.ConnectionError:
  18.         print '当前图片无法下载'
  19.         continue
  20.     string = '%s.jpg' %i
  21.     fp = open(string,'wb')
  22.     fp.write(pic._content)
  23.     fp.close()
  24.     i += 1
  25. print '下载完成'
复制代码
QQ截图20170312125817.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-12 13:06:02 | 显示全部楼层
代码不全
撤退
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-12 19:47:09 | 显示全部楼层
jandan 爬到的图片要加 http: 前缀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-12 20:01:08 | 显示全部楼层
  1. #coding=utf-8
  2. import urllib
  3. import re
  4. url = 'http://jandan.net/ooxx'
  5. page = urllib.urlopen(url)
  6. html = page.read()
  7. #print html
  8. req = r'<img src="//(.*?)" />'
  9. reg = re.compile(req)
  10. img_addrs = re.findall(reg,html)
  11. print img_addrs
  12. for i in xrange(0,len(img_addrs)):
  13.     img_addrs[i] = "http://"+img_addrs[i]
  14. print img_addrs
  15. t = len(img_addrs)
  16. print t
  17. x = 1
  18. for img_url in img_addrs:
  19.     try:
  20.         urllib.urlretrieve(img_url,'%s.jpg' %x)
  21.         x+=1
  22.         print "下载完成第%d张图片:%s" %(x,img_url)
  23.     except Exception, e:
  24.         print "下载图片失败:%s" %(img_url)
  25. print '报告:下载完成!'
复制代码

为嘛我改进了,但是有时候能下载图片成功,但有时候下载图片的大小为1KB。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-12 20:46:34 | 显示全部楼层    本楼为最佳答案   
  1. #coding=utf-8
  2. import re
  3. import requests
  4. url = 'http://jandan.net/ooxx'
  5. html = requests.get(url).text
  6. pic_url = re.findall(r'<img src="//(.*?)" />',html,re.S)
  7. print pic_url #测试正则表达式是否成功
  8. for i in xrange(0,len(pic_url)):
  9.     pic_url[i] = "http://"+pic_url[i]
  10. print pic_url #测试是否获取到图片链接
  11. t = len(pic_url)
  12. print t #图片的数量
  13. i = 0
  14. for each in pic_url:
  15.     try:
  16.         pic= requests.get(each, timeout=10)
  17.     except requests.exceptions.ConnectionError:
  18.         print '当前图片无法下载'
  19.         continue
  20.     string = '%s.jpg' %i
  21.     fp = open(string,'wb')
  22.     fp.write(pic._content)
  23.     fp.close()
  24.     i += 1
  25. print '下载完成'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 05:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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