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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Django自定义列表 models字段显示方式
Apr 03 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 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
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
跟我学Laravel之路由
2014/10/15 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
php字符串过滤与替换小结
2015/01/26 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
JPype实现在python中调用JAVA的实例
2017/07/19 Python
python获取代理IP的实例分享
2018/05/07 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
如何理解Python中包的引入
2020/05/29 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
一些.net面试题
2014/10/06 面试题
个人实用简单的自我评价
2013/10/19 职场文书
项目经理的岗位职责
2013/11/23 职场文书
机械专业应届生求职信
2013/12/12 职场文书
安全生产检讨书
2014/01/21 职场文书
税务干部鉴定材料
2014/02/11 职场文书
教师职称自我鉴定
2014/02/12 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
人力资源职位说明书
2014/07/29 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL