Python怎么爬取某网站文档数据
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"Python怎么爬取某网站文档数据",在日常操作中,相信很多人在Python怎么爬取某网站文档数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Pyt
千家信息网最后更新 2024年09月22日Python怎么爬取某网站文档数据
这篇文章主要介绍"Python怎么爬取某网站文档数据",在日常操作中,相信很多人在Python怎么爬取某网站文档数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python怎么爬取某网站文档数据"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
基本开发环境
Python 3.6
Pycharm
相关模块的使用
import osimport requestsimport timeimport reimport jsonfrom docx import Documentfrom docx.shared import Cm
安装Python并添加到环境变量,pip安装需要的相关模块即可。
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
Python学习交流群:1039649593
目标网页分析
网站的文档内容,都是以图片形式存在的。它有自己的数据接口
接口链接:
https://openapi.book118.com/getPreview.html?&project_id=1&aid=272112230&t=f2c66902d6b63726d8e08b557fef90fb&view_token=SqX7ktrZ_ZakjDI@vcohcCwbn_PLb3C1&page=1&callback=jQuery18304186406662159248_1614492889385&_=1614492889486
接口的请求参数
整体思路
请求网页返回response数据(字符串)
通过re模块匹配提取中间的数据(列表)索引取0(字符串)
通过json模块是把提取出来的数据转换成json模块
通过遍历获取每张图片的url地址
保存图片到本地文件夹
把图片保存到word文档
爬虫代码实现
爬虫代码实现
def download(): content = 0 for page in range(1, 96, 6): # 给定 2秒延时 time.sleep(2) # 获取时间戳 now_time = int(time.time() * 1000) url = 'https://openapi.book118.com/getPreview.html' # 请求参数 params = { 'project_id': '1', 'aid': '272112230', 't': 'f2c66902d6b63726d8e08b557fef90fb', 'view_token': 'SqX7ktrZ_ZakjDI@vcohcCwbn_PLb3C1', 'page': f'{page}', '_': now_time, } # 请求头 headers = { 'Host': 'openapi.book118.com', 'Referer': 'https://max.book118.com/html/2020/0427/8026036013002110.shtm', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=url, params=params, headers=headers) # 使用正则表达式提取内容 result = re.findall('jsonpReturn\((.*?)\)', response.text)[0] # 字符串转json数据 json_data = json.loads(result)['data'] # 字典值的遍历 for value in json_data.values(): content += 1 # 拼接图片url img_url = 'http:' + value print(img_url) headers_1 = { 'Host': 'view-cache.book118.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } # 请求图片url地址 获取content二进制数据 img_content = requests.get(url=img_url, headers=headers_1).content # 文件名 img_name = str(content) + '.jpg' # 保存路径 filename = 'img\\' # 以二进制方式保存 (图片、音频、视频等文件都是以二进制的方式保存) with open(filename + img_name, mode='wb') as f: f.write(img_content)
注意点:
1、一定要给延时,不然后面接口数据会请求不到。
2、请求图片url的时候headers参数需要写完整,否则保存图片是无法打开的
3、命名最好是给定数字,1.jpg、2.jpg 这样,方便后续保存到word
爬虫部分的代码还是比较简单的,没有什么特别的难度。
爬取这些文档,都是需要打印或者查询所以要把这些单张的图片都保存到word文档里面。
写入文档
def save_picture(): document = Document() path = './img/' lis = os.listdir(path) c = [] for li in lis: index = li.replace('.jpg', '') c.append(index) c_1 = sorted(list(map(int, c))) print(c_1) new_files = [(str(i) + '.jpg') for i in c_1] for num in new_files: img_path = path + num document.add_picture(img_path, width=Cm(17), height=Cm(24)) document.save('tu.doc') # 保存文档 os.remove(img_path) # 删除保存在本地的图片
到此,关于"Python怎么爬取某网站文档数据"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
图片
文档
网站
学习
模块
接口
爬虫
二进制
代码
参数
字符
字符串
文件
内容
地址
方式
更多
环境
网页
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库服务器怎么打开
电信企业网络安全责任书
网络安全分区域划分
聊天软件需要买什么服务器
网络技术服务商规定
杭州科腾网络技术有限公司
饥荒联机版服务器mod怎么启动
数据库设计第三范式 3nf
软件开发类央企
如何防止误删数据库
数据库中表的数据类型
apex哪个服务器打rank
华为5g基站服务器什么样子
酷家乐打开提示服务器错误
贵池区常规软件开发服务解决方案
软件开发项目科研经费
网络安全整改备案回函
软件开发 项目提成
网络技术就业培训班
vpn网络安全性
服务器客户端编号
华为6g网络技术采用什么波
软件企业运用软件开发方法
vb简单的数据库
前端网络技术专业
上海正规软件开发检测中心
无法接通服务器
all any数据库
cim软件开发难吗
杭州项目软件开发怎么样