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简单实现计算过期时间的方法
Jun 09 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
Python生成数字图片代码分享
Oct 31 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
python使用Flask操作mysql实现登录功能
May 14 Python
python学习之hook钩子的原理和使用
Oct 25 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
PHP eval函数使用介绍
2013/12/08 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
python自动化生成IOS的图标
2018/11/13 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
python3字符串输出常见面试题总结
2020/12/01 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
九年级数学教学反思
2014/02/02 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
python实现网络五子棋
2021/04/11 Python
Python基础详解之描述符
2021/04/28 Python
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技