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生成随机密码或随机字符串的方法
Jul 03 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
使用Python读取大文件的方法
Feb 11 Python
对pandas处理json数据的方法详解
Feb 08 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 Python
用Python简陋模拟n阶魔方
Apr 17 Python
解决python存数据库速度太慢的问题
Apr 23 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动态生成函数示例
2014/03/21 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
最常用的12种设计模式小结
2011/08/09 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
python进阶教程之动态类型详解
2014/08/30 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
python的keyword模块用法实例分析
2015/06/30 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python实现任意位置文件分割的实例
2018/12/14 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
python实现图片上添加图片
2019/11/26 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
《小猫刮胡子》教学反思
2014/02/21 职场文书
主办会计岗位职责
2014/03/13 职场文书
租赁意向书范本
2014/04/01 职场文书
残疾人小组计划书
2014/04/27 职场文书
团日活动总结书格式
2014/05/08 职场文书
青年志愿者活动方案
2014/08/17 职场文书
期末考试复习计划
2015/01/19 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python