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刷投票的脚本实现代码
Nov 08 Python
使用python加密自己的密码
Aug 04 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python中动态创建类实例的方法
Mar 24 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Python OpenCV获取视频的方法
Feb 28 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 Python
看看如何用Python绘制小米新版天价logo
Apr 20 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用mysql数据库存储session的代码
2010/03/05 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
几个高效,简洁的字符处理函数
2007/04/12 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
vuex实现简易计数器
2016/10/27 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
一则python3的简单爬虫代码
2014/05/26 Python
python实现给数组按片赋值的方法
2015/07/28 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python网络编程之五子棋游戏
2020/05/14 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
《燕子》教学反思
2014/02/18 职场文书
事业单位考核材料
2014/05/21 职场文书
初中军训感想
2015/08/07 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis
Go语言编译原理之源码调试
2022/08/05 Golang