打开微博官网,这里以爬取美女博主Duebass的所有图片为例,首先打开她的主页

主页中显示的都是一些小图,我们点击其中的某一张图片,就可以查看她的大图了。

打开F12查看图片的地址信息,

//wx4.sinaimg.cn/mw690/75614297ly1g2sq66raswj21vl2qae82.jpg

复制这个地址去源代码中搜索,我们发现搜索不到这个url,那么狠明显,图片的地址信息是存放在js或者json文件中的。由于电脑端查看的信息不是很完整,这里我们使用手机端的模式来查看。点击左上角的手机图标然后刷新页面就可以切换到手机浏览模式

切换到手机视图之后,我们再打开Network这个选项,刷新页面信息,可以看到服务的发送了很多的文件过来,翻看这些文件我们发现其中有一个以getIndex开头的文件里面返回的信息中,包含了大量的图片的地址信息,使用浏览器打开这些图片,

图片正是我们所需要的,有些是大图,有些是小图,进一步分析发现,在一个pics数组中,带有large属性的图片是大图,而没有的则是小图。

知道这些信息之后,我们还需找到其他的分页地址信息,因为当前返回的数据中的图片并没有多少,用鼠标拖动页面获取更多的图片,然后在network中找到对应的地址,复制两个不同页的地址我们可以发现,除了page不同之外,其他的都是相同的。

https://m.weibo.cn/api/container/getIndex?is_hot[]=1&is_hot[]=1&jumpfrom=weibocom&type=uid&value=1969308311&containerid=1076031969308311&page=3
https://m.weibo.cn/api/container/getIndex?is_hot[]=1&is_hot[]=1&jumpfrom=weibocom&type=uid&value=1969308311&containerid=1076031969308311&page=4

最后我们还需找到一共有多少页,

查看头部信息

total的数量是4081,然后每页大概有几十张图片,我们将page参数的值改成50,查看头信息,发现page显示的是50,然后将page值改成60,发现显示的还是50,说明它的页数也就是50了,知道这些信息之后,那么写出代码就变得很简单了。

#爬取微博 Duebass的图片from urllib import request
import re
import sslfile_path = 'F:/blog/'
#http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByCategory&cid=6&start=6590&count=50
base_url = 'https://m.weibo.cn/api/container/getIndex?is_hot[]=1&is_hot[]=1&jumpfrom=weibocom&type=uid&value=1969308311&containerid=1076031969308311&page='header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1','Accept': 'application/json, text/plain, */*','Referer': 'https://m.weibo.cn/p/1005051969308311/photos?from=page_100505&from=page_100505&mod=TAB&mod=TAB&jumpfrom=weibocom'
}context = ssl._create_unverified_context()for i in range(5, 6):try:realurl = base_url+str(i)req = request.Request(url=realurl, headers=header)#resp = requests.get(realurl, headers=header)resp = request.urlopen(req, context=context).read().decode()print('==============正在下载第'+str(i)+'页的图片===============')# 先获取所有的large里面的url,注意观察,大图的url中都包含/large,那么我们获取所有的url然后过虐掉不包含/large的url就行了pat = '"url":"(.*?)"'list1 = re.compile(pat).findall(resp)list2 = filter(lambda url : url.find('/large') != -1, list1)list2 = list(list2)for j in range(0, len(list2)-1):pic_url = list2[j].replace('\/', '/')request.urlretrieve(pic_url, file_path+str(i)+str(j)+'.jpg')print('============第' + str(i) + '页的图片下载完成===============')except Exception as error:print(error)

下载过程中可能会出现计算机拒绝等异常信息,可根据控制台打印的情况,将出了异常的页数重新下载。

使用Python爬取微博高清美女大图相关推荐

  1. python爬取4k高清壁纸(多线程版)

    刚学了多线程,于是把上次写的博客拿出来进行改写, 原文链接:python爬取4k高清壁纸(再也不怕没有壁纸了) 爬取过程已经在上一次写过了,可以点击原文链接查看. 废话不多说,直接上多线程代码: im ...

  2. Python爬取LOL高清皮肤壁纸

    Python爬取LOL高清皮肤壁纸 兴趣点: 这两天复习爬虫,CSDN上看到了一个爬取LOL皮肤的博客,哎这个有意思,看了一下他写的代码,感觉难度还可以,就结合着自己的理解写了一下 参考博客: 传送门 ...

  3. python爬取图解_20行PYTHON代码爬取微博高清大图,小白练手绝佳案例

    0. 前戏说明 环境说明 python3版本 所需库:Beautifulsoup .re .requests 知识点:正则表达式.基本网页请求与解析.文件写入 适用人群:小白 最终目标:20行代码爬取 ...

  4. 用Python爬取wallhaven高清原图

    wallhaven高清原图爬取 第一步:整理思路 第二步:分析网址 第三步:编写代码 第一步:整理思路 首先要知道自己要干嘛,怎么干,去哪里干?要干嘛?我们要爬取图片,而且我们要原图.怎么干?这里我用 ...

  5. 如何利用 Python 爬取 LOL 高清精美壁纸?

    作者 | 阿拉斯加 来源 | 杰哥的IT之旅 一.背景介绍 随着移动端的普及出现了很多的移动 APP,应用软件也随之流行起来.最近看到英雄联盟的手游上线了,感觉还行,PC 端英雄联盟可谓是爆火的游戏, ...

  6. python爬取4k高清壁纸(再也不怕没有壁纸了)

    今天突然想换壁纸,在网上找了一圈没有找到满意的,正好学了爬虫,于是我就想把它们全都爬取下来,慢慢挑选. 这次爬取的目标是:彼岸图网动漫壁纸 接下来,我将详细讲解爬取过程: 首先点开网站,右键–检查 观 ...

  7. Python3 爬虫 - 爬取 bing 高清桌面大图

    引言 看到 bing 的高清大图,觉得质量都很高,都挺好看的,升到 window 10 以后,每次开机的画面都不一样,也觉得很有特点,我们来做一个简单的抓图 Demo 版脚本. 版权所有:_ OE _ ...

  8. python3爬取微博评论教程_用python 爬取微博评论,怎么打开微博评论下的查看更多|...

    怎样用python爬新浪微博大V所有数据 先上结论,通过公开的api如爬到某大v的所有数据,需足以下两个条件: 1.在你的爬虫开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000, ...

  9. Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图

    Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图 写在前面 最近在玩蛇的时候发现一个抓包神器Fiddler,简直不要太好用,于是当作练手就把这软件给安排了,王者荣耀盒子一个 ...

最新文章

  1. 九大网络安全失误,需要注意
  2. matlab m 文件例子,一个简单OFDM例子(matlab m文件)
  3. C++获取当前时间和计算程序运行时间的方法
  4. 昨天7月21号,笑笑又生病了
  5. regionserver.HRegionServer: Failed construction RegionServer
  6. c语言实现的sin cos查找表_如何实现EXCEL表数据的自动查找、匹配
  7. c语言最新标准c22,C++20标准(c++标准手册) 官方最新版PDF
  8. Python:计算KDJ指标
  9. 学习英文必记的九种前缀与三种后缀
  10. uniapp开发微信小程序教程(一)
  11. dell台式计算机主板电池,台式机主板电池怎么拆
  12. tlp导致linux运行缓慢,在deepin 20系统中使用tlp但无法自动降频的处理
  13. mac 安装eclipse mat java内存分析工具
  14. 阿里云南京云栖大会举行 给制造业升级下猛药
  15. (邱维声)高等代数课程笔记:目录
  16. Java----jar包
  17. RISC-V 生态未来的三种可能
  18. Web安全:X-XSS-Protection头(防XSS攻击设置)
  19. office word 自定义大纲目录,根据大纲序号来定义子序号
  20. 2020年直播电商数据报告_抖音VS快手

热门文章

  1. Adobe有哪些软件?
  2. cartographer 坐标系_Cartographer使用ODOM
  3. 《师育学大》:打造教育网站首页的关键
  4. 2021年N1叉车司机考试题库及N1叉车司机作业模拟考试
  5. 京东-按图搜索(拍立淘)
  6. Data Guard参数详解
  7. 智能新能源汽车不一样在哪里
  8. 小型教育网站的开发与建设-系统设计(四)
  9. 电容充放电——PWM输出波形不是方波的解释
  10. [转载]Maximum Flow: Augmenting Path Algorithms Comparison