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批量修改文件名的实现代码
Sep 01 Python
Python中input和raw_input的一点区别
Oct 21 Python
Python中list初始化方法示例
Sep 18 Python
名片管理系统python版
Jan 11 Python
Python反射的用法实例分析
Feb 11 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
Python request post上传文件常见要点
Nov 20 Python
Python包argparse模块常用方法
Jun 04 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个人网站架设连环讲(二)
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
原生JS轮播图插件
2017/02/09 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
python中requests小技巧
2017/05/10 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
python numpy库np.percentile用法说明
2020/06/08 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
安全检查与奖惩制度
2014/01/23 职场文书
文明班集体申报材料
2014/05/23 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
检讨书怎么写
2015/01/23 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
python中的plt.cm.Paired用法说明
2021/05/31 Python