-
网页内嵌PDF获取的办法(网页内嵌pdf如何下载源文件)
- 网站名称:网页内嵌PDF获取的办法(网页内嵌pdf如何下载源文件)
- 网站分类:技术文章
- 收录时间:2025-08-07 13:38
- 网站地址:
“网页内嵌PDF获取的办法(网页内嵌pdf如何下载源文件)” 网站介绍
最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保存,深感心痛。思考能否通过脚本实现爬取网页内嵌的PDF并完成下载。
思路:
1. 查看网页源代码,找寻PDF文件地址。很多时候,网站会在网页源代码中隐藏PDF文件的直接下载地址,我们可以通过查找关键字like ".pdf"找到该地址,然后直接下载。
2. 使用浏览器开发者工具分析网络请求,找寻PDF文件地址。当我们访问网页时,浏览器会自动发出许多网络请求,其中很可能包含PDF文件的请求,我们可以通过分析找到请求URL并下载。
3. 使用爬虫程序自动分析网页并下载PDF。我们可以编写爬虫程序使用Requests库访问网页,自动解析网页源代码和网络请求,一旦发现PDF文件请求就进行下载。
首先通过网页源码,查找PDF文件失败,继而转为使用python进行爬取。
使用Requests获取网页内容:
import requests
url = "目标网页地址"
response = requests.get(url)
html = response.text
解析网页源码找寻PDF地址:
import re
pattern = re.compile(r'http.*?.pdf')
result = pattern.findall(html)
pdf_url = result[0] # 获取第一个匹配结果
下载PDF文件:
import requests
pdf_response = requests.get(pdf_url)
with open("pdf文件.pdf", "wb") as f:
f.write(pdf_response.content)
将上述脚本代码的思路整合行程统一执行脚本:
import requests
import re
url = "目标网页地址"
response = requests.get(url)
html = response.text
pattern = re.compile(r'http.*?.pdf')
result = pattern.findall(html)
pdf_url = result[0]
pdf_response = requests.get(pdf_url)
with open("course.pdf", "wb") as f:
f.write(pdf_response.content)
print("PDF文件已下载!")
执行结果不理想,代码报错
pdf_url = result[0]
~~~~~~^^^
IndexError: list index out of range
报错原因分析可能原因:
1. 网页源码中不存在PDF URL,正则表达式无法匹配,result为空列表。
2. 正则表达式匹配模式错误,无法正确匹配PDF URL,导致result为空列表。
通过重新打开浏览器打开目标网页地址,发现跳转至了首页,并且处于未登陆状态。开来要完成PDF爬取还需增加对网站当前账号的cookie,session,token等信息的获取,而这些信息基本都是通过浏览器开发者工具获取。
有点复杂,既然又转回开发者工具,那么转变思路,通过控制台命令的方式来进行PDF爬取试试。
开发者调试模式-控制台命令:
let pdf_url = "";
document.querySelectorAll("iframe, object, embed").forEach(element => {
if (element.src.includes(".pdf")) {
pdf_url = element.src;
}
});
console.log(pdf_url);
执行结果反馈了PDF的绝对地址,使用浏览器能正常打开该PDF文件,使用下载工具完成PDF的下载。
更多相关网站
- 如何使用Java开发在线生成 pdf 文档 ?
- springboot 2整合websocket推送消息、数据流、解析pdf图片并压缩
- pdf,word,ppt,rar,mp4等等文档在线预览
- 7款口碑炸裂的电脑软件!一个比一个好用,Windows装机必备
- 办公小技巧:杜绝意外 让字体永不丢失
- 铅锤哥:处理PDF文件的神器——完美解密、压缩、转换格式等
- 对比工具大PK(对比工具怎么用)
- 好用的迅捷pdf转ppt转换器(迅捷pdf转换器怎么把pdf转成cad)
- 界面美观功能强大,终于可以告别单调的swagger ui了——knife4j
- PDF尺寸统计软件推荐(pdf尺寸测量工具)
- 超实用ISSUU文档下载教程(isas文档)
- 如何将PDF的某一页插入到WORD(如何把pdf文件中的某一页存出来)
- C#技术分享【PDF转换成图片——13种方案】
- 网络另类下载(网络另类下载网站)
- 这些宝藏免费PDF编辑网站,建议收藏起来!
- 使用requests库和urlretrieve下载pdf文件
- 速看!2021山东“专升本”招生计划出炉
- 相见恨晚:windows十款必装的逆天神器
- 最近发表
-
- 反恐防暴警钟鸣,校园安全保和谐(校园反恐防暴的宣传小知识)
- 增强防范意识,提高反恐能力——西丰县幼儿园举行反恐防暴演练
- .NET 使用 ZXing.Net 生成带有识别符的 EAN-13 条码
- 微软Windows 11隐藏彩蛋被发现(win11显示隐藏文件)
- Windows 10 Build 21327.1010发布:测试服务管道更新
- PPT图形高效绘制技巧全指南(含8种经典图形类型)
- 跨平台复制粘贴工具,SyncClipboard软件体验
- 还在为输入易经符号发愁?手把手教你轻松搞定!
- 再见 Calibri,你好 Aptos:微软新的默认字体
- 涨姿势!微软公司LOGO的进化史(微软logo设计师是谁)
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- acmecadconverter_8.52绿色版 (25)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- usb2.0-serial驱动下载 (24)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- virtualdrivemaster (26)
- 数据结构c语言版严蔚敏pdf (25)
- 兔兔工程量计算软件下载 (27)
- 代码整洁之道 pdf (26)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- 方格子excel破解版补丁 (25)
- segoe ui是什么字体 (27)