python利用urllib实现爬取京东网站商品图片的爬虫实例


Posted in Python onAugust 24, 2017

本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码!

# -*- coding: utf-8 -*
import re
import os
import urllib
import urllib2
from bs4 import BeautifulSoup
def craw(url,page):
 html1=urllib2.urlopen(url).read()
 html1=str(html1)
 soup=BeautifulSoup(html1,'lxml')
 imagelist=soup.select('#J_goodsList > ul > li > div > div.p-img > a > img')
 namelist=soup.select('#J_goodsList > ul > li > div > div.p-name > a > em')
 #pricelist=soup.select('#plist > ul > li > div > div.p-price > strong')
 #print pricelist
 path = "E:/{}/".format(str(goods))
 if not os.path.exists(path):
  os.mkdir(path)
 for (imageurl,name) in zip(imagelist,namelist):
  name=name.get_text()
  imagename=path + name +".jpg"
  imgurl="http:"+str(imageurl.get('data-lazy-img'))
  if imgurl == 'http:None':
   imgurl = "http:" + str(imageurl.get('src'))
  try:
   urllib.urlretrieve(imgurl,filename=imagename)
  except:
   continue

'''
#J_goodsList > ul > li:nth-child(1) > div > div.p-img > a > img
#plist > ul > li:nth-child(1) > div > div.p-name.p-name-type3 > a > em
#plist > ul > li:nth-child(1) > div > div.p-price > strong:nth-child(1) > i
'''

if __name__ == "__main__":
 goods=raw_input('please input the goos you want:')
 pages=input('please input the pages you want:')
 count =0.0
 for i in range(1,int(pages+1),2):
  url="https://search.jd.com/Search?keyword={}&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&suggest=1.def.0.T06&wq=diann&page={}".format(str(goods),str(i))
  craw(url,i)
  count += 1
  print 'work completed {:.2f}%'.format(count/int(pages)*100)

图片的命名为商品的名称,京东商品图片地址的属性很可能会有所变动,所以大家进行编写的时候应该举一反三,灵活运用! 
这是我下载下来的手机类图片文件的截图: 

python利用urllib实现爬取京东网站商品图片的爬虫实例

我本地的爬取的速度很快,不到一分钟就能爬取100页上千个商品的图片!

以上这篇python利用urllib实现爬取京东网站商品图片的爬虫实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python文件及目录操作实例详解
Jun 04 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
python 对key为时间的dict排序方法
Oct 17 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
Python数据类型之Dict字典实例详解
May 07 Python
python 日志 logging模块详细解析
Mar 31 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
python 接口_从协议到抽象基类详解
Aug 24 #Python
Python调用ctypes使用C函数printf的方法
Aug 23 #Python
使用Python实现博客上进行自动翻页
Aug 23 #Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 #Python
Python PyQt5标准对话框用法示例
Aug 23 #Python
Python PyQt5实现的简易计算器功能示例
Aug 23 #Python
Python实现的密码强度检测器示例
Aug 23 #Python
You might like
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
初学JavaScript第二章
2008/09/30 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
大学生自我鉴定书
2014/03/24 职场文书
优秀大学生自荐信
2014/06/09 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
志愿者事迹材料
2014/12/26 职场文书
js之ajax文件上传
2021/05/13 Javascript
教你使用TensorFlow2识别验证码
2021/06/11 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技