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 相关文章推荐
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Django如何配置mysql数据库
May 04 Python
python实现公司年会抽奖程序
Jan 22 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
简单了解python中对象的取反运算符
Jul 01 Python
Django 外键的使用方法详解
Jul 19 Python
python tkinter组件摆放方式详解
Sep 16 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
python怎么删除缓存文件
Jul 19 Python
使用Python实现音频双通道分离
Dec 25 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中的路径问题与set_include_path使用介绍
2014/02/11 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
javascript removeChild 使用注意事项
2009/04/11 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
js简单时间比较的方法
2016/08/02 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
python获取本机外网ip的方法
2015/04/15 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
物理教育专业求职信
2014/06/25 职场文书
会计专业自荐书
2014/07/08 职场文书
2014年度培训工作总结
2014/11/27 职场文书
爱的承诺书
2015/01/20 职场文书
蓬莱阁导游词
2015/02/04 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript