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 相关文章推荐
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python对Excel的读取的示例代码
Feb 14 Python
Python读取二进制文件代码方法解析
Jun 22 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
python中的错误如何查看
Jul 08 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 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新手上路(七)
2006/10/09 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python中format()函数的简单使用教程
2018/03/14 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
django 外键model的互相读取方法
2018/12/15 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
简单了解Python write writelines区别
2020/02/27 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
教师自我评价范例
2013/09/24 职场文书
新教师工作感言
2014/02/16 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2014年减负工作总结
2014/12/10 职场文书
工作岗位职责范本
2015/02/15 职场文书
大学学生会辞职信
2015/05/13 职场文书
城南旧事电影观后感
2015/06/16 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android
Nginx配置https的实现
2021/11/27 Servers