初学urllib,高手勿喷...

import re
import urllib.request
#函数:每一页抓取的30张图片
def craw(url,page):
imagelist = []#这里每次都要重新定义新的空列表,第一次没有定义结果爬取的都是一样的图片
html1 = urllib.request.urlopen(url)
data = str(html1.read())
patter1 = '<li class="gl-item".+?</li>'
result1 = re.compile(patter1).findall(data)
patter2 = '//img.+?.jpg'#用.+?代表的是中间可是是任意多个字符
for i in range(30):
result_temp = result1[i]
imagelist.append(re.compile(patter2).findall(result_temp))#用compile和findall得出的是列表,再将得到的列表加入整个的一个列表
for i in range(1,30):#一开始调试用的是笨办法一个个的点,后来发现可以在断点处设置i==4
try:#在imagelist中有存在图片抓取失败的情况,最懒的解决办法就是用try——except,无论出现什么情况都pass掉
imageurl = "http:"+str(imagelist[i][0])
imagename = "D:/picture/"+str(page)+str(i)+".jpg"
result = urllib.request.urlopen(imageurl)#得到图片的地址后,**还是用打开连接用read()得到data的方法获取图片
if (result.getcode() != 200):#如果链接不正常,则跳过这个链接
pass
else:
data = result.read() # 否则开始下载到本地
with open(imagename, "wb") as code:
code.write(data)
code.close()
except:
pass url = 'https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&cid2=653&cid3=655&page='
for i in range(2,10):#先从2页爬取到9页
url_new = url + str(2*i-1)#分析每页的地址将page后的无用的地方删去,再加上(2n-1),n为页数
craw(url_new,i)

最新文章

  1. 【转】Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
  2. 根据word模板(contract_templet.tld)生成并下载word合同及根据wordHTML模板(contract_templetHTML.tld)预览合同内容
  3. Head First 设计模式--2 观察者模式 解耦
  4. sql server R2 下载地址收藏
  5. HDU 4287 (13.08.17)
  6. 使用JDBC进行数据库的事务操作(1)
  7. 初识Scratch 3.0
  8. h5 的localStorage和sessionStorage存到缓存里面的值是string类型
  9. 【CSS学习】--- z-index属性
  10. ElasticSearch文档操作介绍三
  11. 【十六】php 面向对象
  12. Django、Flask、Tornado的比较
  13. 微信小程序获取当前位置
  14. 【jmeter】jmeter之“参数化”
  15. Yii2.0 发送邮件时中文附件乱码的问题
  16. ffmpeg源码分析一:概述 (转1)
  17. poj:1850 Code(组合数学?数位dp!)
  18. 2016.4.9 NOI codevs动态规划专练
  19. 重写ListView解决ListView内部ViewPaper滑动事件冲突问题
  20. Docker 自动运行Nginx容器

热门文章

  1. jboos下载地址记录
  2. SQL锁机制和事务隔离级别
  3. 文本框获取光标位置 ---- ctrl+enter换行
  4. SQL学习之SqlMap SQL注入
  5. django 加载静态文件(图片,js,css)
  6. Android实践项目汇报(总结)
  7. [矩阵十题第七题]vijos 1067 Warcraft III 守望者的烦恼 -矩阵快速幂
  8. AMS1117稳压模块
  9. HDU 1247 Hat’s Words(字典树)题解
  10. QQ名片自动点赞