用Python批量读取本地文本里的图片链接并下载到本地
背景: 我把 B 站热词表情包链接手动粘到 Twikoo 的 json 文件里时,发现图片链接在 Twikoo 里显示不了,B 站应该开启了防盗链,于是我打算把表情包下载到本地再上传到图床。话说为什么要手动去复制表情包链接,因为 B 站数据是动态显示的,Python 爬取到的源码里没有表情包链接,网上有人说这类网站用 Selenium 来获取源码,我测试后,其它同类网站成功了,但 B 站还是获取不到。现在只好先把链接一个一个保存到 json 文件里,再用 Python 逐个下载,这应该算是半自动化了吧。。。我先记录下如何读取文本里的图片链接并下载到本地吧。 核心代码 代码核心点就是读取文本内容、用正则表达式筛选出图片链接、命名、存储到本地文件夹 123456789101112131415with open(source_path, "r", encoding="UTF-8") as f: json = f.read() list = re.findall("[正则表达式]", json) list.reverse( ...
用Python批量爬取网络文章图片并下载到本地
背景: 有时候想搬运一些文章,文章图片少的话,可以一个一个右键保存在本地,一旦几十张以上会非常麻烦,正好最近也在自学 Python 爬虫,不妨写个 demo 用一用,顺便水一篇文章,哦不对,是两篇(搬运+教程)🤣 核心代码 代码核心点就是拿到图片链接、命名、存储到本地文件夹 12345678910for img_url in soup.select("<ID、Class、Tag等等定位>"): img_url = img_url.get("<data-src或者src>") res = requests.get(img_url) now = time.strftime("%Y-%m-%d_%H-%M-%S_", time.localtime()) # 当前时间-年月日时分秒 ms = str(time.time()).split(".")[1] # 当前时间-微秒 img_name = file_path + now + ms + " ...
Python网络爬虫笔记
参考 B 站IT 私塾的Python 爬虫编程基础 5 天速成(2021 全新合集)Python 入门+数据分析视频 初识网络爬虫网络爬虫(又被称为网页蜘蛛、网络机器人),是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。 其本质是,由一个入口网页进行深入,不停的进行其他的 URL 的爬取,然后再把抓取到的网页进行分析处理得出想要的数据。 Robots 协议,是网站跟爬虫间的协议,用简单直接的 txt 格式文本方式告诉对应的爬虫被允许的权限 网络爬虫的一般流程 发起请求,获取响应 通过 http 库,对目标站点进行请求。等同于自己打开浏览器,输入网址 常用库:urllib、urllib3、requests 服务器会返回请求的内容,一般为:html、二进制文件(视频,音频)、文档,json 字符串 解析内容 寻找自己需要的信息,就是利用正则表达式或者其他库提取目标信息 常用库:re、beautifulsoup4 数据持久化将解析得到的数据保存到文件或者数据库中 基本流程准备工作 弄清楚你需要爬取哪些页面,以及哪的数据 分析页面借助 Chrome 开发者工具(F1 ...
Python基础笔记
参考 B 站 IT 私塾的Python 爬虫编程基础 5 天速成(2021 全新合集)Python 入门+数据分析视频 注释 单行注释 12# 我是注释,可以在里写一些功能说明之类的哦print('hello world') 多行注释 123456'''我是多行注释,可以写很多很多行的功能说明哈哈哈。。。'''print('hello world') 如果直接在程序中用到了中文,比如:print('你好'),如果直接运行输出,程序会出错 解决的办法为:在程序的开头写入#coding=utf-8 注意:在 python 的语法规范中推荐使用# -*- coding:utf-8 -*- 输出普通输出print('hello world') 格式化输出12age = 21print("我今年%d岁"% age) 在程序中,看到了%这样的操作符,这就是 Python 中格式化输出。 再来一个例子: 123age = 21 ...
Selenium框架,模拟登陆网站
基本操作及解释123456789101112131415161718192021222324252627282930313233343536# 自动化测试工具,能够控制我们的浏览器from selenium import webdriver# 导入时间模块import time# 实例化浏览器driver = webdriver.Chrome()# 登录此网址driver.get('http://xxx')# 按Ctrl+Shift+C选中一个要输入的板块,在对应代码区右键-->Copy-->Copy XPath,将代码粘到下面,最后填写需要输入的数据driver.find_element_by_xpath('xxx').send_keys("xxx")# 进入小页面框架中,方能进行查找元素操作driver.switch_to.frame('xxx')# 将xxx板块截图,并命名为'xxx.png'element = driver.find_element_by_xpath( ...