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中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
浅谈Pycharm中的Python Console与Terminal
Jan 17 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
Python读取实时数据流示例
Dec 02 Python
python多维数组分位数的求取方式
Mar 03 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python如何实现定时器功能
May 28 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
Python一行代码实现自动发邮件功能
May 30 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
php中iconv函数使用方法
2008/05/24 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
如何编写python的daemon程序
2021/01/07 Python
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
什么是数组名
2012/05/10 面试题
记者岗位职责
2014/01/06 职场文书
职工趣味运动会方案
2014/02/10 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
励志演讲稿500字
2014/08/21 职场文书
农村党支部承诺书
2015/04/30 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
PHP中->和=>的意思
2021/03/31 PHP