Python利用requests库爬取百度文库vip文章

本来马上做课设,做课设太烦了,所以只好偷工减料,但是想下载一个百度文库的文章,结果一看还要会员,这作为一个程序员怎么受得了。

这岂不是让一个本不富裕的家庭更加的雪上加霜。那我只能靠Python维持学习了!

1.Requests

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

2.安装requests

pip install xxxx -i https://pypi.douban.com/simple 1

或者参照教程

https://blog.csdn.net/qq_44176343/article/details/1093621341

3.代码

'''author:鹏鹏写代码'''import requestsimport re #正则表达式import jsonheaders = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Mobile Safari/537.36'}def get_num(url): response = requests.get(url, headers=headers).text result = re.search( r'&md5sum=(.*)&sign=(.*)&rtcs_flag=(.*)&rtcs_ver=(.*?)'.*rsign':'(.*?)',', response, re.M | re.I) # 寻找参数 reader = { 'md5sum': result.group(1), 'sign': result.group(2), 'rtcs_flag': result.group(3), 'rtcs_ver': result.group(4), 'width': 176, 'type': 'org', 'rsign': result.group(5) } result_page = re.findall( r'merge':'(.*?)'.*?'page':(.*?)}', response) # 获取每页的标签 doc_url = 'https://wkretype.bdimg.com/retype/merge/' + url[29:-5] # 网页的前缀 n = 0 for i in range(len(result_page)): # 最大同时一次爬取10页 if i % 10 is 0: doc_range = '_'.join([k for k, v in result_page[n:i]]) reader['pn'] = n + 1 reader['rn'] = 10 reader['callback'] = 'sf_edu_wenku_retype_doc_jsonp_%s_10' % ( reader.get('pn')) reader['range'] = doc_range n = i get_page(doc_url, reader) else: # 剩余不足10页 doc_range = '_'.join([k for k, v in result_page[n:i + 1]]) reader['pn'] = n + 1 reader['rn'] = i - n + 1 reader['callback'] = 'sf_edu_wenku_retype_doc_jsonp_%s_%s' % ( reader.get('pn'), reader.get('rn')) reader['range'] = doc_range get_page(doc_url, reader)def get_page(url, data): response = requests.get(url, headers=headers, params=data).text response = response.encode( 'utf-8').decode('unicode_escape') # unciode转为utf-8 然后转为中文 response = re.sub(r','no_blank':true', '', response) # 清洗数据 result = re.findall(r'c':'(.*?)'}', response) # 寻找文本匹配 result = '\n'.join(result) print(result)if __name__ == '__main__': url = 'http://wenku.baidu.com/view/f732a599db38376baf1ffc4ffe4733687e21fcf9' get_num(url)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263

运行结果展示:

接下来做课设岂不是有手就行了,一般就是组合键完成课设了呗!

完整代码后台私信小编01即可

(0)

相关推荐

  • Python爬取淘数据平台商品数据,发现假发的市场原来那么火

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 最近发现了一个不错的数据网站,叫"淘数据".里面的数据都是淘宝的商家数据 ...

  • Python爬虫:爬取需要登录的网站

    不少伙伴学爬虫,这就出一期Python爬虫教程,文末总结的有视频教程,自己按需学习哈! 爬虫在采集网站的过程中,部分数据价值较高的网站,会限制访客的访问行为.这种时候建议通过登录的方式,获取目标网站的 ...

  • 百度主动推送代码 批量改进版

    百度主动推送代码,批量推送页面所有URL.改进修复推送undefined错误问题. <script type="text/javascript">//by https: ...

  • 30行Python代码从百度自动下载图片(附小白也能看懂的源码和exe程序)

    只需要30行代码就可以从百度自动下载图片 大家好,我是黑羽,一个专门教小学生撸Python的编程老师(小学生都能学会的编程) 这里想问大家三个问题 : - 你还在为批量下载表情包发愁吗? - 你还在为 ...

  • 《python接口自动化测试》新书已上架-YOYO出品

    期待已久的<python接口自动化测试>终于上架了,本书满满的干货 从最基础的抓包开始讲(手把手的教程,小白也能入门),接着是最强大,最符合人类设计的requests框架做接口测试,结合p ...

  • 60 行代码,10000 个虎牙小姐姐视频来袭!

    来源:Python 技术「ID: pythonall」 小编前几天已经写了用 Python 下载 B 站的小姐姐跳舞视频,今天用 Python 下载虎牙的小姐姐视频,大伙一起来看看吧. 获取播放列表 ...

  • 【我问Crossin】Python 能被运用在哪些领域?

    【我问Crossin】Python 能被运用在哪些领域?

  • 爬虫精进6

    ---------如有疑问,欢迎交流指正-------- 第6关 练习-储存电影信息-参考 第一步:分析问题,明确结果 问题需求就是把豆瓣TOP250里面的 序号/电影名/评分/推荐语/链接 都爬取下 ...

  • requests模块的入门使用

    requests模块的入门使用 dongge-destiny 2018-07-11 00:10:18  137  收藏 分类专栏: python-爬虫 文章标签: requests模块的入门使用 版权 ...

  • 用 50 行代码写个听小说的爬虫

    来源:Python 技术「ID: pythonall」 在路上发现好多人都喜欢用耳机听小说,同事居然可以一整天的带着一只耳机听小说.小编表示非常的震惊.今天就用 Python 下载听小说 tingch ...

  • 还在搜百度图片?太LOW了!

    来源:Python 技术「ID: pythonall」 你现在还去什么图片网站搜图片吗? 你现在还在百度图片等图片网站搜素材吗? 今天给大家分享一种全新的方式来获取图片素材,你想要的这里全都有! 它就 ...