爬取图片

「已注销」 2017-12-16 11:02:46
import re
import urllib.request

def craw(url,page):
html1=urllib.request.urlopen(url).read()
html1=str(html1)
pat1='div id=pilst".+?<div class="page clearfix">'
result1=re.compile(pat1,re.S).findall(html1)
result1=result1[0]
pat2='<img width-"220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">'
imagelist=re.compile(pat2).findall(result1)
x=1
for imageurl in imagelist:
imagename="E:/新建文件夹/myweb/"+str(page)+str(x)+".jpg"
imageurl="http://"+imageurl
try:
urllib.request.urlretrieve(imageurl,filename=imagname)
except urllib.error.URLError as e:
if hasattr(e,"code"):
x+=1

x+=1
x+=1

for i in range(1,79):
url="http://list.jd.com/list.html?cat=9987,653,655&page="+str(i)
craw(url,i)


出现以下错误,怎么解决?求大神指导。
Traceback (most recent call last):
File "E:\新建文件夹\myweb\paqutupain.py", line 27, in <module>
craw(url,i)
File "E:\新建文件夹\myweb\paqutupain.py", line 9, in craw
result1=result1[0]
IndexError: list index out of range






...全文
906 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_31290381 2017-12-28
  • 打赏
  • 举报
回复
(.+?)括号需要吧
AlbertS 2017-12-22
  • 打赏
  • 举报
回复
没有查到匹配结果吧,result1可能是一个空的列表
oyljerry 2017-12-16
  • 打赏
  • 举报
回复
result1没有拿到数据。也就是前面正则没有票匹配成功
宇风 -飞扬 2017-12-16
  • 打赏
  • 举报
回复
result1=result1[0] 数组下表越界,result1 肯定是个空的, 你那它第一个元素肯定 取不到

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧