python爬虫爬取百度文库txt以及ppt资料

使用bs4,requests,re库完成对百度文库部分格式文件的爬取

案例中的目标文档地址: https://wenku.baidu.com/view/cbb4af8b783e0912a3162a89.html?from=search
案例中的个ppt地址: https://wenku.baidu.com/view/f74952272bf90242a8956bec0975f46527d3a703.html?from=search

效果展示:


代码:

import requests
import bs4
import re
import os
import jsonsession = requests.session()#发送请求获取内容
def fetch_url(url):return session.get(url).content.decode('gbk')#获取id
def get_doc_id(url):return re.findall('view/(.*).html',url)[0]#获取文档类型
def parser_type(content):return re.findall(r"docType.*?\:.*?\'(.*?)\'\,",content)[0]#获取标题
def parser_title(content):return re.findall(r"title.*?\:.*?\'(.*?)\'\,",content)[0]#md5
def parser_txt(doc_id):content_url = 'https://wenku.baidu.com/api/doc/getdocinfo?callback=cb&doc_id=' + doc_idcontent = fetch_url(content_url)#md5值md5 = re.findall('"md5sum":"(.*?)"',content)[0]#页码pn = re.findall('"totalPageNum":"(.*?)"',content)[0]print(pn)#rsignrsign = re.findall('"rsign":"(.*?)"',content)[0]content_urls = 'https://wkretype.bdimg.com/retype/text/' + doc_id + '?rn=' + pn + '&type=txt' + md5 + '&rsign=' + rsign content = json.loads(fetch_url(content_urls))result =''for item in content:for i in item['parags']:result += i['c'].replace('\\r','\r').replace('\\n','\n')return resultdef save_file(filename,content):with open(filename,'w',encoding='utf-8') as f:f.write(content)print('已保存为: ' + filename)#将其他格式的文件保存为图片到本地
def parse_other(doc_id):content_url = "http://wenku.baidu.com/browse/getbcsurl?doc_id=" + doc_id + "&pn=1&rn=99999&type=ppt"content = fetch_url(content_url)url_list = re.findall('{"zoom":"(.*?)","page"',content)url_list = [item.replace("\\",'')for item in url_list]if not os.path.exists(doc_id):os.mkdir(doc_id)for index,url in enumerate(url_list):content = session.get(url).contentpath = os.path.join(doc_id,str(index)+'.jpg')with open(path,'wb')as f:f.write(content)print("图片保存在" + doc_id + "文件夹")# https://wkretype.bdimg.com/retype/text/cbb4af8b783e0912a3162a89?
# md5sum=6e7a10b16f3ad8d3b40ecd0dfe8d1b67&
# sign=3283bb4e6e&callback=cb&pn=1&rn=4&type=txt&rsign=p_4-r_0-s_460f0&_=1581649897081#https://wenku.baidu.com/api/doc/getdocinfo?callback=cb&doc_id=cbb4af8b783e0912a3162a89&t=1581650253651&_=1581650253480#主函数
def main():url = 'https://wenku.baidu.com/view/cbb4af8b783e0912a3162a89.html?from=search' #txt#url = 'https://wenku.baidu.com/view/f74952272bf90242a8956bec0975f46527d3a703.html?from=search' #ppt#请求content = fetch_url(url)#获取iddoc_id = get_doc_id(url)#获取文档类型type = parser_type(content)#获取标题title = parser_title(content)if type =='txt':result = parser_txt(doc_id)save_file(title + '.txt',result)else:parse_other(doc_id)if __name__ == "__main__":main()

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

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

相关文章

独家! 19个省市,共62个5G消息相关招投标项目汇总!

5G消息,自2020年4月三大运营商共同发布《5G消息白皮书》以来,便成为5G时代话题中心。 经公开信息得知,涉及5G消息的相关招投标信息共计62个(如有遗漏,欢迎留言补充)。 为方便大家“一览无余”,小…

当网页数据到达用户计算机,当网页数据到达用户计算机时,数据进行转换步骤是()...

摘要: 当网达用然后编制成表,据到进行检查表中般都的回答一是(,行检按此表进查,项目检查确定,险因列出的危所有素,若干个单元或层次分成。行作险性评价境危用L业环法进时,户计据的因素所依是(。…

任务01-05表格表单的知识点的整理

一、表格的使用 1.表格(table),表头(thead):行(tr),列(th),有加粗且居中,表身(tody):行&#xff0…

网络设备中的集线器(Hub)是什么?—Vecloud微云

集线器的英文是Hub,这个词的意思是中心,也就是说,集线器本身是作为网络的中心而存在的一种网络设备。通常按照标准的ISO(国际标准化组织)制定OSI(Open System Interconnection)(开放系统网络互联)的七层模型里的物理层的设备。 集线器有什么作用&#xf…

上海软件公司排行

公司名 地理位置 网址 红黑TOP100 公司列表 网友评论 信息反馈 地图查看 全国公司评论 IP地址速查 分类排行: 全国排行榜上海市北京市广东省江苏省浙江省天津市河北省山西省内蒙古自治区辽宁省吉林省黑龙江省安徽省福建省江西省山东省河南省湖北省湖南省广西壮族自治区海南省…

转发:上海软件公司排行 (估计是2008年的吧)

原文:http://www.cnblogs.com/Ihaveadream/archive/2008/04/21/1164302.html 红榜Top100 OrderCompany NamePointChange172.5--2SAP(中国)研究院 - SAP Labs70.8--3SAP Active Global Support - SAP AGS67.9--4飞思卡尔半导体(上海)67.1--5赛…

Crust 的2020年终总结 :测试网达1000节点,基本完成协议开发

Crust 提供了 Web3 生态系统的去中心化存储网络,支持包括 IPFS 在内的多种存储层协议,并对应用层提供接口。Crust 的技术栈还能够支持去中心化计算层。Crust 旨在构建一个重视数据隐私和所有权的分布式云生态系统。 尽管 2020 是史无前例艰难的一年&…

天空测试显卡软件,自由天空综合驱动包

自由天空驱动包,是一套免费的驱动程序包。自由天空驱动包主要包含以下硬件驱动更新:显卡、声卡、芯片组、网卡、无线网卡、笔记本其他设备等。自由天空驱动包更新主要对于常用硬件驱动进行更新,运用官方最新版/稳定版,当前自由天空…

网达科技和鸿蒙,鸿蒙是否真实存在?

在回答你的问题之前,我首先要强调一点,在科技行业,任何一项技术产品化都要遵循一个原则:首先应该解决无有问题,也就是从0到1,其次才是对产品的进一步升级和优化。 鸿蒙系统的从0-1 2015年华为推出了Huawei …

blob 在线解码_停课不停学——网达软件全力护航在线教育“空中开讲”

3月2日,上海140万中小学生走进“空中课堂”,正式开始在线学习。疫情爆发后,为响应教育部 “停课不停学”的号召,网达软件在春节假期迅速启动应急机制,紧急部署,调集人力,加班加点,远…

210323,闽发铝业,网达软件,以岭药业成交量检测

当前资料为AI智能生成,不作任何投资建议,请自行判断自身风险承受能力 筛选规则说明 获取近3天成交量涨跌幅度获取均值,如果当天的值大于0.4,取均值和当天值的和取最大的30条数据 海欣食品,系数6.11 股票代码:002702,净利润同比432.68%,营收同比:21.57…

数据可视化神器DATAV

每年的双十一,天猫都会在剁手狂欢节中直播战绩。除了可怕的数字之外,不知道大家有没有留意到这些同样可怕的数据可视化大屏 : (2015双十一大屏) (2016双十一大屏) 所谓大屏,顾名思义…

探索 ChatGPT 的迷人功能:里程碑式的 AI 大型语言模型

GPT-3 是一种自回归语言模型,可输出非常类似人类的书面文本。它是世界上最大、最先进的语言模型之一,拥有 1750 亿个参数。ChatGPT是一款生成式预训练 Transformer,由旧金山人工智能研究实验室 OpenAI 于 2022 年 11 月推出。 该技术的工作原理是从大量数据中学习如何以类似…

客户端请求是如何到达服务器的

TCP/IP是如何工作的呢,我们先从数据包开始讲起。 1、数据包 一、HTTP请求和响应步骤 http请求全过程 请求 响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 2、TCP/IP概述 我们以RFC 1180…

无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动

无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/aspnet_state/Parameters…

Linux 服务器 已发出 HTTP 请求,正在等待回应... 读取文件头错误 (连接被对方重设)。

Linux 上下载 data_aishell.tgz 文件时报错,显示 已发出 HTTP 请求,正在等待回应… 读取文件头错误 (连接被对方重设) 如图所示 主要原因是我们执行文件内部的链接可能有误,我之前设置的链接在本地可以链接到下载地址,但是最终显示的和我在文件里写的不一样 一开始…

大白话理解-微信小程序获取授权

学习目录 微信小程序前端直接获取授权微信为什么要授权微信怎么授权?微信登录 微信小程序前端直接获取授权 微信为什么要授权 微信用户授权,才可以操作微信官方的某些接口。简单来说就是:微信定义了很多接口,然后他们认为有一部…

大白话理解-微信小程序的授权登录

学习改文章,您就有清晰的微信小程序授权思路,前后端遵循开发规矩即可 当然更加完善的实现办法要去看官方文档的推荐 学习前建议看看授权大白话理解-微信小程序获取授权 文章目录 大白话讲步骤:按照最常见的,点击一个按钮进行登录1…

剪映的相关介绍

剪映快捷键 更改全局设置 定格:截取视频中的一帧生成图片(3秒) 镜像:将视频左右翻转 联动:开启联动,视频轨道上方的字幕或文字轨道能够随视频移动 关闭原声:视频中的原声将不播放 关闭原声&…

剪映使用教程

目录 剪映常用功能 剪映常用功能