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 随机数生成的代码的详细分析
May 15 Python
python函数返回多个值的示例方法
Dec 04 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
python中翻译功能translate模块实现方法
Dec 17 Python
python中Mako库实例用法
Dec 31 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
PYTHON InceptionV3模型的复现详解
May 06 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php curl选项列表(超详细)
2013/07/01 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
python解析xml文件操作实例
2014/10/05 Python
Django如何自定义分页
2018/09/25 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python猜数字算法题详解
2020/03/01 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
高一新生军训感言
2014/03/02 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
创业计划书之酒厂
2019/10/14 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript