python爬虫获取PDF

前提:菜鸟学习的记录过程,如果有不足之处,还请各位大佬大神们指教(感谢)】

1.方法一:网站找到目标数据【单篇PDF】

https://bidding.sinopec.com/tpfront/xxgg/004005/

按F12,----检查------network----

要看常规的请求方式---get---post

在请求表头,看有没有奇怪的值,可以会加密,

import  requests# 一般带上url,user——agent,headers,cookieheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36','Cookie':'tpfront=4788ee85d9fd8926ef48c20bb8dc4c43; Hm_lvt_42e506478546400c16c57095f80950ed=1743408249; Hm_lpvt_42e506478546400c16c57095f80950ed=1743408249; HMACCOUNT=B0B7FD1EB0F629AE; BIGipServerPOOL_DZZBTB_234_80=3564697866.20480.0000; ASP.NET_SessionId=flwz1jfqof5hxmrdv0xizghj; TPFrame=13ac4d652fc425c52033851ae548024b'
}
# get里面放url
res=requests.get('https://bidding.sinopec.com/tpframe//AttachStorage202006/202412/J115/f8da7370-cbf6-499f-b0dc-83047805c8e4/%E4%B8%AD%E6%A0%87%E5%85%AC%E5%91%8A.pdf',headers=headers)
print(res)
print(res.text)

拿到的数据是乱码,说明是二进制的数据,or 数据被加密了。

解决:把text换成 content

print(res.content)

就会得到一个二进制的数据,把这些数据放进一个二进制的文件保存

with  open('石油test.pdf','wb')as f:f.wirte(response.content)

 2.方法二下载pdf

F12 找到html的中标公告.pdf 

类似url

```
"https://bidding.sinopec.com/tpframe//AttachStorage202006/202412/J115/ca1dce49-f03e-497a-a254-009ff09ee2bd/中标公告.pdf"
```

想要获取这个url,就需要先获取html代码。

先去分析这个URL在html在哪个部分请求???

我们把想要的url复制,去查找

import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36','Cookie': 'tpfront=4788ee85d9fd8926ef48c20bb8dc4c43; Hm_lvt_42e506478546400c16c57095f80950ed=1743408249; Hm_lpvt_42e506478546400c16c57095f80950ed=1743408249; HMACCOUNT=B0B7FD1EB0F629AE; BIGipServerPOOL_DZZBTB_234_80=3564697866.20480.0000; ASP.NET_SessionId=flwz1jfqof5hxmrdv0xizghj; TPFrame=13ac4d652fc425c52033851ae548024b'
}response=requests.get('https://bidding.sinopec.com/tpfront/infodetail/?infoid=ca1dce49-f03e-497a-a254-009ff09ee2bd&siteid=1&categoryNum=004005&RelateOuGuid=',headers=headers)
print(response.text)

上面,可以把页面的html,下载。

在 HTML 和 CSS 中,ID 选择器使用 # 符号,而 class 选择器使用 .(点)符号。

a[target="_blank"]table#filedown a

from bs4 import  BeautifulSoupsoup=BeautifulSoup(response.text,'lxml')
print(soup.select('table#filedown a')[0])

```python
import requests
from bs4 import  BeautifulSoupheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
}
# 这个url指的是这个网页的
response=requests.get('https://bidding.sinopec.com/tpfront/infodetail/?infoid=ca1dce49-f03e-497a-a254-009ff09ee2bd&siteid=1&categoryNum=004005&RelateOuGuid=',headers=headers)
# print(response.text)soup=BeautifulSoup(response.text,'lxml')
print(soup.select('table#filedown a')[0]['href'])pdf_url=soup.select('table#filedown a')[0]['href']# # 发送请求
res=requests.get(pdf_url,headers=headers)with open('石油2.pdf','wb')as f:f.write(res.content)print("成功啦")```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89787.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IFN影视官网入口 - 4K影视在线看网站|网页|打不开|下载

IFN影视是一个专注于影视内容的网站,提供电影、电视剧、综艺等各类影视资源的在线观看服务。该网站以用户需求为导向,致力于为用户提供高清、流畅的观影体验,并不断更新内容以满足不同用户的观看习惯和偏好。IFN影视的特色在于其内容丰富、分…

《计算机网络》实验报告四 TCP协议分析

目 录 1、实验目的 2、实验环境 3、实验内容 3.1 利用wget下载新疆大学主页 3.2 使用wireshark分析TCP报文结构 3.3 使用wireshark分析建立连接的三次握手 3.4 使用wireshark分析释放连接的四次挥手 4、实验结果与分析 4.1 利用wget下载新疆大学主页 4.2 使用wiresh…

知识 IP 的突围:从 “靠感觉” 到 “系统 + AI” 的变现跃迁

越来越多的知识付费从业者陷入 “努力无成果” 的困局:做了内容、上了课程,却没人看、没人买。核心问题不在于能力不足,而在于仍在用 “靠感觉” 的原始方式打造 IP。在流量内卷、节奏加快的当下,“内容情怀” 已撑不起一门生意&a…

4.Java创建对象有几种方式?

1.使用 new 关键字(最常用)通过调用类的构造函数直接实例化对象Person person new Person(); // 调用无参构造 Person person new Person("Alice", 25); // 调用有参构造2.反射机制(动态创建)利用Java反射 API 在运行…

【好题】洛谷 P1600 [NOIP 2016 提高组] 天天爱跑步(倍增LCA+桶)

前言没做出来,看了很多篇题解后AC了,感觉大部分题解讲得不清楚。题目思路结果有两种求法模拟跑步过程,统计每个节点能观察到的人数考虑每条路径会对哪些节点作出贡献(当前路径的玩家能被观察到)尝试第一种求法必须遍历…

valkey之网络管理架构深度解析

一、连接类型实现体系 valkey通过ConnectionType结构体构建了灵活的网络连接抽象,支持多种连接类型的统一管理。每种连接类型都通过填充该结构体的函数指针来实现特定功能,形成了面向接口的设计模式。1.1 socket连接 Socket连接提供了最基础的TCP/IP通信…

【解码文本世界的“隐形分界线”:Windows与Linux回车换行之谜】

在计算机的文本世界里,回车(Carriage Return,CR)和换行(Line Feed,LF)是两个看似简单却意义非凡的字符。它们如同文本中的“隐形分界线”,默默地划分着段落与行,影响着文…

【Project】ELK 7.17.16 日志分析系统部署

ELK 日志分析系统集群部署 本文档基于 Rocky Linux 9.4 系统,部署 ELK 7.17.16(长期支持版)集群 案例准备 1. 节点规划IP主机名部署组件角色说明192.168.100.150kafka01Elasticsearch、Kibana主节点(master) 可视化192…

分布式定时任务系列13:死循环是任务触发的银弹?

传送门 分布式定时任务系列1:XXL-job安装 分布式定时任务系列2:XXL-job使用 分布式定时任务系列3:任务执行引擎设计 分布式定时任务系列4:任务执行引擎设计续 分布式定时任务系列5:XXL-job中blockingQueue的应用 …

Flutter基础(前端教程①③-单例)

现实类比:公司打印机假设你们公司有一台共享打印机:非单例(重复创建):每个员工都自己买一台打印机放在工位上结果:浪费钱,占空间,难维护单例(唯一实例)&#…

力扣刷题 -- 965.单值二叉树

题目示例: 思路分析代码实现 bool isUnivalTree(struct TreeNode* root) {if(rootNULL){return true;}if(root->left && root->val ! root->left->val){return false;}if(root->right && root->val ! root->right->val){re…

uni-api交互反馈组件(showToast)的用法

欢迎来到我的UniApp技术专栏!🎉 在这里,我将与大家分享关于UniApp开发的实用技巧、最佳实践和项目经验。 专栏特色: 📱 跨平台开发一站式解决方案 🚀 从入门到精通的完整学习路径 💡 实战项目经…

借助它,在Web3投资赛道抢占先机

随着互联网技术的飞速发展,Web3的概念逐渐成为科技圈和投资界的热门话题。Web3代表着下一代互联网的发展方向,它强调去中心化、用户主权和数据隐私保护。在这一新兴领域,如何借助Web3技术抢占投资先机,成为许多投资者关注的焦点。…

验证大语言模型不会算数但可以编写算数的程序

摘要:本文通过几个实例测试了大语言模型在数学计算、排序、统计等方面的能力。结果显示,对于简单字符统计、排序等任务,大模型能正确生成实现代码,但当数据区分度降低时容易出错。在计算学生分数排名任务中,大模型生成…

概率论与数理统计(八)

参数估计 通过取样本,并用样本构造函数,达成估计分布函数参数的目的 矩估计法 本质:用样本的各阶矩代替总体的各阶矩,即取: E(X)X‾1n∑iXiE(X2)1n∑iXi2E(X)\overline{X}\dfrac{1}{n}\sum_i X_i\\ E(X^2)\dfrac{1}…

服务器后台崩溃的原因

当我们双十一活动零点拼命刷新却卡在支付完页面,游戏页面等不进去,公司系统瘫痪全体员工干瞪眼,服务器崩溃绝对是数字时代中的酷刑!那服务器为什么会说崩就崩,用户对于这种情况该如何进行避雷呢?服务器主要…

线程池与ThreadPoolExecutor源码解析(上)

一、线程池线程池(ThreadPool)是一种线程复用的机制。它维护着若干个线程,任务来了就复用这些线程去执行,任务做完线程不会销毁,而是回到池中等待下一个任务。为什么要用线程池?降低资源消耗:避…

Linux内核IP分片重组机制剖析:高效与安全的艺术

在IP网络通信中,当数据包超过MTU限制时,路由器会将其拆分为多个分片。这些分片到达目标主机后,内核必须高效、安全地重组原始数据包。Linux内核的net/ipv4/inet_fragment.c实现了一套精妙的分片管理框架,完美平衡了性能和安全性需求。本文将深入剖析其设计哲学与关键技术。…

相机模型和对极几何

一、相机模型 1.针孔相机模型-外参矩阵 1.世界坐标系到相机坐标系 世界坐标系:可以定义空间中任意一个位置,原点位置三个坐标轴方向坐标系姿态(X,Y,Z)相机坐标系:定义在相机上,原点是相机中心,z…

Git 常用命令与操作步骤

以下是 Git 常用命令与操作步骤 的整理&#xff0c;涵盖日常开发中最核心的场景&#xff0c;适合快速查阅和上手&#xff1a;1. 初始化与克隆仓库操作命令本地初始化仓库git init克隆远程仓库git clone <仓库URL> &#xff08;如 git clone https://gitlab.com/user/repo…