设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 8952|回复: 3
打印 上一主题 下一主题

写了一个爬虫,为何老报错?

[复制链接]

1

主题

0

好友

37

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2013-9-7 22:51:34 |只看该作者 |倒序浏览
本帖最后由 w5132008 于 2013-9-7 22:53 编辑

环境:win
版本:python3.3

老报错,ascii啥的。
测试可用帖子ID:2537728260,这个事符合判断要求的
  1. import urllib.request
  2. import re

  3. #下载图片
  4. def getImage(html):
  5.     reg=r'http://imgsrc.baidu.com/forum/w%3D580.+\.jpg'
  6.     imgre=re.compile(reg)
  7.     imglist=imgre.findall(html)
  8.     x=1
  9.     #限制下载的图片数
  10.     for imgurl in imglist:
  11.         if x<=10:
  12.             urllib.request.urlretrieve(imgurl,'%s.jpg'%x)
  13.             x+=1
  14.         else:
  15.             print('超过图片数量限制')
  16.             break

  17. #获取html
  18. def getHtml(url):
  19.     html=urllib.request.urlopen(url).read().decode('gbk')
  20.     reg=r'%C9%E3%D3%B0'
  21.     imgre=re.compile(reg)
  22.     resultlist=imgre.findall(html)
  23.     if resultlist:
  24.         return html

  25. #获取帖子id
  26. def getUrl(num):
  27.     url='http://tieba.baidu.com/p/%s'%num
  28.     return url

  29. #从输入的帖子开始获取,直到上限
  30. num=input('输入起始数:')
  31. while int(num)<=2537728262:
  32.     url=getUrl(num)
  33.     html=getHtml(url)
  34.     getImage(html)
  35.     num+=1
  36. else:
  37.     print('输入ID超出范围!')
复制代码
回复

使用道具 举报

1

主题

0

好友

37

积分

新手上路

Rank: 1

沙发
发表于 2013-9-11 20:02:34 |只看该作者
居然没人回复,老师,求教。。。
:'(:'(:'(:'(:'(:'(
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-9-13 01:56:23 |只看该作者
你的imgurl似乎取的不对
你把imgurl输出出来看看,似乎多了很多东西
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

2

好友

48

积分

新手上路

Rank: 1

地板
发表于 2014-1-10 12:44:22 |只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-12-4 02:01 , Processed in 0.021924 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部