Python爬虫实现爬取京东手机页面的图片(实例代码)


Posted in Python onNovember 30, 2017

实例如下所示:

__author__ = 'Fred Zhao'
 
import requests
from bs4 import BeautifulSoup
import os
from urllib.request import urlretrieve
 
class Picture():
 
 def __init__(self):
  self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'}
  self.base_url = 'https://list.jd.com/list.html?cat=9987,653,655&page='
  self.base_path = os.path.dirname(__file__)
 
 def makedir(self, name):
  path = os.path.join(self.base_path, name)
  isExist = os.path.exists(path)
  if not isExist:
   os.makedirs(path)
   print("File has been created.")
  else:
   print('OK!The file is existed. You do not need create a new one.')
  os.chdir(path)
 
 def request(self, url):
  r = requests.get(url, headers=self.headers)
  return r
 
 def get_img(self, page):
  r = self.request(self.base_url + str(page))
  plist = BeautifulSoup(r.text, 'lxml').find('div', id='plist')
  item = plist.find_all('li', class_='gl-item')
  print(len(item))
  self.makedir('pictures')
  num = 0
  for i in item:
   num += 1
   imglist = i.find('div', class_='p-img')
   print(num)
   img = imglist.find('img')
   print('This is %s picture' %num)
   if img.get('src'):
    url = 'https:' + img.get('src')
    fileName = img.get('src').split('/')[-1]
    urlretrieve(url, filename=fileName)
 
   elif img.get('data-lazy-img'):
    url = 'https:' + img.get('data-lazy-img')
    fileName = img.get('data-lazy-img').split('/')[-1]
    urlretrieve(url, filename=fileName)
 
 
 
if __name__ == '__main__':
 picture = Picture()
 for i in range(2): #控制爬取的页数
  picture.get_img(i+1)

以上这篇Python爬虫实现爬取京东手机页面的图片(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python文件和流(实例讲解)
Sep 12 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
python实现C4.5决策树算法
Aug 29 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
Python pickle模块实现对象序列化
Nov 22 Python
python计算二维矩形IOU实例
Jan 18 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
python爬虫之爬取笔趣阁小说
Apr 22 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 #Python
Python科学画图代码分享
Nov 29 #Python
Python中Scrapy爬虫图片处理详解
Nov 29 #Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 #Python
Python实现的计数排序算法示例
Nov 29 #Python
Scrapy框架CrawlSpiders的介绍以及使用详解
Nov 29 #Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 #Python
You might like
十天学会php之第七天
2006/10/09 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
js实现图片360度旋转
2017/01/22 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
python numpy 反转 reverse示例
2019/12/04 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
python通过cython加密代码
2020/12/11 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
建筑人员岗位职责
2013/12/25 职场文书
英语系毕业生求职信
2014/07/13 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript