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应用程序在windows下不出现cmd窗口的办法
May 29 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
python移位运算的实现
Jul 15 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
Python socket处理client连接过程解析
Mar 18 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
Python面向对象特殊属性及方法解析
Sep 16 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
资料注册后发信小技巧
2006/10/09 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
Three.js快速入门教程
2016/09/09 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
幼儿园亲子活动方案
2014/01/29 职场文书
论文诚信承诺书
2014/05/23 职场文书
踏青活动策划方案
2014/08/19 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
行政二审代理词
2015/05/25 职场文书
餐馆开业致辞
2015/08/01 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
Python爬虫之爬取某文库文档数据
2021/04/21 Python
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android