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多线程编程方式分析示例详解
Dec 06 Python
python操作mysql数据库
Mar 05 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
Python数据可视化:泊松分布详解
Dec 07 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
Matplotlib配色之Colormap详解
Jan 05 Python
教你怎么用python实现字符串转日期
May 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迭代器的内部执行过程详解
2013/11/12 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
利用php输出不同的心形图案
2016/04/22 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
Python中tell()方法的使用详解
2015/05/24 Python
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
pandas 时间格式转换的实现
2019/07/06 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
详解Python 最短匹配模式
2020/07/29 Python
土木工程应届生自荐信
2013/09/24 职场文书
董事长岗位职责
2013/11/30 职场文书
大跃进口号
2014/06/16 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
工作简历的自我评价
2019/05/16 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
redis 限制内存使用大小的实现
2021/05/08 Redis
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫