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调用C语言开发的共享库方法实例
Mar 18 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
Python获取邮件地址的方法
Jul 10 Python
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
如何使用Python实现斐波那契数列
Jul 02 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
Python读写yaml文件
Mar 20 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缓存类代码(附详细说明)
2011/06/09 PHP
php判断表是否存在的方法
2015/06/18 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
jQuery实现弹幕特效
2019/11/29 jQuery
vuex入门最详细整理
2020/03/04 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python自动扫雷实现方法
2015/07/25 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python实现TCP通信的示例代码
2019/09/09 Python
python 求10个数的平均数实例
2019/12/16 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
水污染治理专业毕业生推荐信
2013/11/14 职场文书
个性大学生自我评价
2013/12/04 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
会计做账心得体会
2016/01/22 职场文书
初中语文教学反思范文
2016/03/03 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python