文章目录

  • 需求
  • 方法解析
  • 代码
  • 参考资料

需求

批量爬取指定微博中的所有图片。

方法解析

先爬取指定微博,解析获得所有图片的链接。
然后爬取图片链接,进行下载。

代码

先决条件:指定微博列表。
一个 json 文件,存储下面的形式的数据。具体来说是一个存放着字符串的列表,每个字符串就是一个微博id。

记得修改headers 中的 user-agent 和 cookie 。没有这两个的话,微博会禁止访问。

import requests
import json
import re
import timedef downloadImage(href, cnt):headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",}dimg = requests.get(href, headers=headers).contentwith open("E:\\pics\\" + str(cnt) + ".jpg", 'wb') as f:f.write(dimg)f.close()print("图片" + str(cnt) + "已下载")def pic_spider(headers, weibo_id, surl="/mblog/picAll/Ku9M9q9cQ?rl=1"):base_url = "https://weibo.cn/"url = base_url + surlres = requests.get(url, headers=headers)one_pic_compile = re.compile('<img src="(.*?)"')pic_url_ls = one_pic_compile.findall(res.text)for i, pic_url in enumerate(pic_url_ls):downloadImage(pic_url, str(weibo_id) + str(i))def main():with open("weibo_id.json", "r") as f:weibo_id_ls = json.load(f)base_url = "https://weibo.cn"headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36","cookie": "SCF=AqVSTARJXRNZouo6nNF9xKz9Al9c_XbFdUndXfHBZANMf_O3I1wzz_pEtetOy0hNNNfGEZdvePHWT6mws0tpf34.; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5-_hGmCeI-rYRjN3uql2sS5NHD95Qf1hz0S0nR1KMRWs4Dqcj-i--fi-z7iKysi--fi-2RiKnp9Jqt; _T_WM=9f3070657cd64c960c880a9e53056c8c; SUB=_2A25MsDbuDeRhGeNG6VEW-CbFzDSIHXVsW1qmrDV6PUJbkdANLUnekW1NS3quSjDPfopWfmhP9G3AZ7_MLspv1O1D; SSOLoginState=1639204542"}pic_compile = re.compile('\[<a href="(.*?)">组图共')for i, weibo_id in enumerate(weibo_id_ls):# if i < 69:#     continuetime.sleep(10)url = f"{base_url}/comment/{weibo_id}"print(i, url)res = requests.get(url, headers=headers)if "如果没有自动跳转" in res.text:print(weibo_id + "网址已失效")continuepic_url = pic_compile.findall(res.text)if len(pic_url) > 0:pic_spider(headers, weibo_id, pic_url[0])else:print(res.text)pic = re.findall('<img src="http:(.*?)\.jpg', res.text)if len(pic) == 0:pic = re.findall('<img src="http:(.*?)\.gif', res.text)pic_url = "http:" + pic[0] + ".gif"else:pic_url = "http:" + pic[0] + ".jpg"downloadImage(pic_url, str(weibo_id) + "0")if __name__ == '__main__':main()

参考资料

https://regex101.com/
https://zhuanlan.zhihu.com/p/344384930

Python3批量爬取指定微博中的图片相关推荐

  1. python3爬虫爬取百度贴吧下载图片

    python3爬虫爬取百度贴吧下载图片 学习爬虫时没事做的小练习. 百度对爬虫还是很友好的,在爬取内容方面还是较为容易. 可以方便各位读者去百度贴吧一键下载每个楼主的图片,至于是什么类型的图片,就看你 ...

  2. python3最新爬取王者荣耀英雄的图片

    这里写自定义目录标题 pyrhon最新爬取王者荣耀全部英雄的皮肤 第一步 分析网页 url:https://pvp.qq.com/web201605/herolist.shtml 第二步 通过分析网页 ...

  3. python爬虫爬取慕课网中的图片

    我们简单地爬取慕课网中免费课程下的第一页的图片,如想爬取多页图片,可以添加for循环自行实现 python版本:3.6.5 爬取网址:http://www.imooc.com/course/list ...

  4. Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析

    上一篇:Python 爬虫入门篇-如何获取网页中的图片.我们了解到了 urllib 获取图片的原理,urllib.request.urlretrieve() 就是用来获取图片的. 这一篇,我们用正则表 ...

  5. 用Python批量爬取2种格式的图片并下载

    欢迎加入QQ学习交流群,与我们一起学习,一起进步吧! 群号:225361733 可以QQ扫一扫加入群聊哦! 本文使用编程猫官网进行教学,敬请谅解,不过本文作者通过自己钻研在第3次更新中推出了爬2种格式 ...

  6. 天猫爬虫--爬取天猫评论中的图片

    毕业设计做的是基于电商的评论图片爬取,本次以天猫NIKE网店为爬取对象, 链接为:点击打开链接 首先按F12打开火狐浏览器的流量监控工具,点击网络,然后依次点击累计评论.图片,显示含有图片的评论,经过 ...

  7. 【python爬虫实战】批量爬取站长之家的图片

    概述: 站长之家的图片爬取 使用BeautifulSoup解析html 通过浏览器的形式来爬取,爬取成功后以二进制保存,保存的时候根据每一页按页存放每一页的图片 第一页:http://sc.china ...

  8. 爬取某网站中的图片数据(爬虫案例) --原创作者

    @author: 羽兮39 @time: 2022/12/16 00: 24 憋火,火了我八成要寄. 是一个爬虫的综合案例,包含了urllib库中request的使用和lxml的使用. lxml数据解 ...

  9. 八爪鱼 爬取微博中的图片到本地

    八爪鱼 爬取微博中的图片到本地 批量爬取大量的好看的图片 到自己的本地电脑  哈哈哈哈哈哈 抓取的微博图片 详细步骤:http://www.bazhuayu.com/tutorial/wbpiccj ...

  10. Python批量爬取王者荣耀英雄高清壁纸

    Python批量爬取王者荣耀英雄高清壁纸 文章目录 Python批量爬取王者荣耀英雄高清壁纸 前言 爬虫步骤 python代码实现 总结 前言 很多喜欢玩王者的朋友很希望把王者荣耀的英雄图片拿来做壁纸 ...

最新文章

  1. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...
  2. 树hash树BtreeB+tree
  3. 比较合适的工作看板组合形式
  4. ASP.NET中PostBack和ViewState
  5. 开发语言大爆炸的时代,究竟谁主沉浮?
  6. 中科院大学计算机研究生考试大纲,中国科学院大学《计算机原理》2019年硕士研究生入学考试大纲...
  7. LeetCode141-环形链表(Linked List Cycle)-Rust语言实现
  8. Ubuntu上,如何成功的安装pygrib
  9. 三菱plc pwm指令_学会了这27条基本逻辑指令,你离熟练编程三菱PLC又近了一步!...
  10. AI创作教程之 Stable Diffusion 为何是人工智能新时代艺术创作的基石
  11. RTL8153 VC CG
  12. java.sql字符串拼成日期_sql字符串转换成日期
  13. 三行代码做一辆Q弹物理自行车,骑上它去海边兜风吧!
  14. 织梦建站教程,织梦安全问题解决,修改织梦URL命名规则
  15. 国外广告联盟骗局汇总(持续更新中)
  16. 怎么进入修复计算机界面,开机进入启动修复界面不能启动win7电脑的修复办法...
  17. 数独游戏-安卓版源代码和分析。
  18. linux怎么打出管道命令这个符号,linux 管道命令 竖线 ‘ | ’
  19. macOS更新10.14.6 更新到macOS Monterey
  20. 时间序列:移动窗口函数(rolling,expanding)

热门文章

  1. [工作日志] LDAP的SHA加密方式--Java
  2. java物流管理系统_基于java的物流管理系统
  3. Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法
  4. 中标麒麟linux配置网卡,中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程...
  5. Matlab 两条曲线间填充颜色,改变透明度
  6. 【HDU】5208 Where is Bob 【DP】
  7. 基本类型偏执-平行继承体系-令人着迷的暂时值域
  8. 简述FPGA的一些优势
  9. 在线暴躁:script /问题
  10. 花了3个小时解决了和异地女朋友一起看电影的需求(内附源码)