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运算π的值深入Python中科学计算的实现
Apr 17 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
Python文件操作基本流程代码实例
Dec 11 Python
Python查看微信撤回消息代码
Jun 07 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Python中的类与类型示例详解
Jul 10 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
将pytorch转成longtensor的简单方法
Feb 18 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 Python
Python道路车道线检测的实现
Jun 27 Python
python字典进行运算原理及实例分享
Aug 02 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
apache和PHP如何整合在一起
2015/10/12 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
使用python实现kNN分类算法
2019/10/16 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
python3中数组逆序输出方法
2020/12/01 Python
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
2013年员工自我评价范文
2013/12/27 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
班级聚会策划书
2014/01/16 职场文书
幼师大班个人总结
2015/02/13 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL