Python3批量爬取指定微博中的图片
文章目录
- 需求
- 方法解析
- 代码
- 参考资料
需求
批量爬取指定微博中的所有图片。
方法解析
先爬取指定微博,解析获得所有图片的链接。
然后爬取图片链接,进行下载。
代码
先决条件:指定微博列表。
一个 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批量爬取指定微博中的图片相关推荐
- python3爬虫爬取百度贴吧下载图片
python3爬虫爬取百度贴吧下载图片 学习爬虫时没事做的小练习. 百度对爬虫还是很友好的,在爬取内容方面还是较为容易. 可以方便各位读者去百度贴吧一键下载每个楼主的图片,至于是什么类型的图片,就看你 ...
- python3最新爬取王者荣耀英雄的图片
这里写自定义目录标题 pyrhon最新爬取王者荣耀全部英雄的皮肤 第一步 分析网页 url:https://pvp.qq.com/web201605/herolist.shtml 第二步 通过分析网页 ...
- python爬虫爬取慕课网中的图片
我们简单地爬取慕课网中免费课程下的第一页的图片,如想爬取多页图片,可以添加for循环自行实现 python版本:3.6.5 爬取网址:http://www.imooc.com/course/list ...
- Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析
上一篇:Python 爬虫入门篇-如何获取网页中的图片.我们了解到了 urllib 获取图片的原理,urllib.request.urlretrieve() 就是用来获取图片的. 这一篇,我们用正则表 ...
- 用Python批量爬取2种格式的图片并下载
欢迎加入QQ学习交流群,与我们一起学习,一起进步吧! 群号:225361733 可以QQ扫一扫加入群聊哦! 本文使用编程猫官网进行教学,敬请谅解,不过本文作者通过自己钻研在第3次更新中推出了爬2种格式 ...
- 天猫爬虫--爬取天猫评论中的图片
毕业设计做的是基于电商的评论图片爬取,本次以天猫NIKE网店为爬取对象, 链接为:点击打开链接 首先按F12打开火狐浏览器的流量监控工具,点击网络,然后依次点击累计评论.图片,显示含有图片的评论,经过 ...
- 【python爬虫实战】批量爬取站长之家的图片
概述: 站长之家的图片爬取 使用BeautifulSoup解析html 通过浏览器的形式来爬取,爬取成功后以二进制保存,保存的时候根据每一页按页存放每一页的图片 第一页:http://sc.china ...
- 爬取某网站中的图片数据(爬虫案例) --原创作者
@author: 羽兮39 @time: 2022/12/16 00: 24 憋火,火了我八成要寄. 是一个爬虫的综合案例,包含了urllib库中request的使用和lxml的使用. lxml数据解 ...
- 八爪鱼 爬取微博中的图片到本地
八爪鱼 爬取微博中的图片到本地 批量爬取大量的好看的图片 到自己的本地电脑 哈哈哈哈哈哈 抓取的微博图片 详细步骤:http://www.bazhuayu.com/tutorial/wbpiccj ...
- Python批量爬取王者荣耀英雄高清壁纸
Python批量爬取王者荣耀英雄高清壁纸 文章目录 Python批量爬取王者荣耀英雄高清壁纸 前言 爬虫步骤 python代码实现 总结 前言 很多喜欢玩王者的朋友很希望把王者荣耀的英雄图片拿来做壁纸 ...
最新文章
- Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...
- 树hash树BtreeB+tree
- 比较合适的工作看板组合形式
- ASP.NET中PostBack和ViewState
- 开发语言大爆炸的时代,究竟谁主沉浮?
- 中科院大学计算机研究生考试大纲,中国科学院大学《计算机原理》2019年硕士研究生入学考试大纲...
- LeetCode141-环形链表(Linked List Cycle)-Rust语言实现
- Ubuntu上,如何成功的安装pygrib
- 三菱plc pwm指令_学会了这27条基本逻辑指令,你离熟练编程三菱PLC又近了一步!...
- AI创作教程之 Stable Diffusion 为何是人工智能新时代艺术创作的基石
- RTL8153 VC CG
- java.sql字符串拼成日期_sql字符串转换成日期
- 三行代码做一辆Q弹物理自行车,骑上它去海边兜风吧!
- 织梦建站教程,织梦安全问题解决,修改织梦URL命名规则
- 国外广告联盟骗局汇总(持续更新中)
- 怎么进入修复计算机界面,开机进入启动修复界面不能启动win7电脑的修复办法...
- 数独游戏-安卓版源代码和分析。
- linux怎么打出管道命令这个符号,linux 管道命令 竖线 ‘ | ’
- macOS更新10.14.6 更新到macOS Monterey
- 时间序列:移动窗口函数(rolling,expanding)
热门文章
- [工作日志] LDAP的SHA加密方式--Java
- java物流管理系统_基于java的物流管理系统
- Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法
- 中标麒麟linux配置网卡,中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程...
- Matlab 两条曲线间填充颜色,改变透明度
- 【HDU】5208 Where is Bob 【DP】
- 基本类型偏执-平行继承体系-令人着迷的暂时值域
- 简述FPGA的一些优势
- 在线暴躁:script /问题
- 花了3个小时解决了和异地女朋友一起看电影的需求(内附源码)