• 转载自:爬取百度文库

代码实现

import requests
import re
import json
import ossession = requests.session()def fetch_url(url):return session.get(url).content.decode('gbk')def get_doc_id(url):return re.findall('view/(.*).html', url)[0]def parse_type(content):return re.findall(r"docType.*?\:.*?\'(.*?)\'\,", content)[0]def parse_title(content):return re.findall(r"title.*?\:.*?\'(.*?)\'\,", content)[0]def parse_doc(content):result = ''url_list = re.findall('(https.*?0.json.*?)\\\\x22}', content)url_list = [addr.replace("\\\\\\/", "/") for addr in url_list]for url in url_list[:-5]:content = fetch_url(url)y = 0txtlists = re.findall('"c":"(.*?)".*?"y":(.*?),', content)for item in txtlists:if not y == item[1]:y = item[1]n = '\n'else:n = ''result += nresult += item[0].encode('utf-8').decode('unicode_escape', 'ignore')return resultdef parse_txt(doc_id):content_url = 'https://wenku.baidu.com/api/doc/getdocinfo?callback=cb&doc_id=' + doc_idcontent = fetch_url(content_url)md5 = re.findall('"md5sum":"(.*?)"', content)[0]pn = re.findall('"totalPageNum":"(.*?)"', content)[0]rsign = re.findall('"rsign":"(.*?)"', content)[0]content_url = 'https://wkretype.bdimg.com/retype/text/' + doc_id + '?rn=' + pn + '&type=txt' + md5 + '&rsign=' + rsigncontent = json.loads(fetch_url(content_url))result = ''for item in content:for i in item['parags']:result += i['c'].replace('\\r', '\r').replace('\\n', '\n')return resultdef parse_other(doc_id):content_url = "https://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 + "文件夹")def save_file(filename, content):with open(filename, 'w', encoding='utf8') as f:f.write(content)print('已保存为:' + filename)def main():url = input('请输入要下载的文库URL地址_')content = fetch_url(url)doc_id = get_doc_id(url)type = parse_type(content)title = parse_title(content)if type == 'doc':result = parse_doc(content)save_file(title + '.txt', result)elif type == 'txt':result = parse_txt(doc_id)save_file(title + '.txt', result)else:parse_other(doc_id)if __name__ == "__main__":main()

python 爬虫——爬取百度文库VIP内容相关推荐

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

    使用bs4,requests,re库完成对百度文库部分格式文件的爬取 案例中的目标文档地址: https://wenku.baidu.com/view/cbb4af8b783e0912a3162a89 ...

  2. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  3. python爬虫爬取百度文档

    使用python爬虫爬取百度文档文字 话不多说,直接上代码! import requests import reheaders = {"User-Agent": "Moz ...

  4. python爬虫爬取百度贴吧图片,requests方法

    每天一点点,记录学习 近期爬虫项目,看完请点赞哦---: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:python爬虫爬取百度贴吧图片,requests方 ...

  5. Python爬虫爬取豆瓣电影评论内容,评论时间和评论人

    Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...

  6. python 爬取百度知道,Python 爬虫爬取百度百科网站

    利用python写一个爬虫,爬取百度百科的某一个词条下面的全部链接和每一个链接内部的词条主题和摘要.利用request库爬取页面,然后利用BeautifulSoup对爬取到的页面提取url和关键内容. ...

  7. python爬虫爬取百度图片总结_爬虫篇| 爬取百度图片(一)

    什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  8. python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片

    当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...

  9. python爬虫下载电影百度文档_写一个python 爬虫爬取百度电影并存入mysql中

    目标是利用python爬取百度搜索的电影 在类型 地区 年代各个标签下 电影的名字 评分 和图片连接 以及 电影连接 首先我们先在mysql中建表 create table liubo4( id in ...

最新文章

  1. Github上 Star 数相加超过 7w+ 的三个面试相关的仓库推荐
  2. Android 音频播放——AudioTrack直接播PCM、MediaPlayer播媒体文件可以是audio
  3. C指针原理(14)-C指针基础
  4. mshflexgrid固定行对齐_放开那个空格键让我来,word对齐文字的四个方法
  5. Java多线程同步机制
  6. 超图Cesium二三维切换
  7. 七个顶级的心理寓言(转载)
  8. 为什么赚不到90后00后的钱?
  9. 使用Microsoft Lookback网卡解决了断网情况下 Virtual Server 虚机和主机的网络连接
  10. 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
  11. 今日份bug,点击win10任务栏视窗动态壁纸消失的bug,暂未发现解决方法。
  12. 【Android开发】考试系统
  13. ORA-27300 ORA-27301 ORA-27302
  14. 推荐系统工程实践经验
  15. 学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
  16. 微信摇一摇动画效果加音效
  17. 2019年终总结,继往开来!
  18. 一张画布重塑你的职业生涯
  19. 卡西欧计算器计数切换
  20. 闲谈5个改变未来的人工智能技术(CV方向)

热门文章

  1. macbook 终端命令怎么使用_mac终端命令大全 苹果入门
  2. 设计师谈配色 配色方案 WEB
  3. postgreSQL pgpool-II
  4. 苹果iTC后台新增数据维度,对ASA有什么影响?
  5. IMS各网元的主要功能
  6. Linux Kernel 网络 之 Netlink
  7. 浅谈NFT抵押借贷的三种模式:点对点、资金池和中心化模式
  8. python 表示金额时,将中文数字的大写的壹贰叁肆伍转换为阿拉伯数字:rmbTrans.trans
  9. 20世纪最著名的逆向投资者,从1万美元做到220亿美元!
  10. 手写数字识别——算法