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中数据解析
May 05 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
Python实现二维有序数组查找的方法
Apr 27 Python
python使用pycharm环境调用opencv库
Feb 11 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
OpenCV+python手势识别框架和实例讲解
Aug 03 Python
Python饼状图的绘制实例
Jan 15 Python
详解用python写一个抽奖程序
May 10 Python
python实现统计代码行数的小工具
Sep 19 Python
python实现翻译word表格小程序
Feb 27 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Django与数据库交互的实现
Jun 03 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 命名空间实例说明
2011/01/27 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
js实现中文实时时钟
2020/01/15 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
python动态性强类型用法实例
2015/05/09 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
介绍一下游标
2012/01/10 面试题
大学系主任推荐信范文
2013/12/24 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
python对文档中元素删除,替换操作
2022/04/02 Python