Python利用requests库爬取百度文库文章
python爬取百度文库
- 1.Requests
- 2.安装requests
- 3.代码
本来马上做课设,做课设太烦了,所以只好偷工减料,但是想下载一个百度文库的文章,结果一看还要会员,这作为一个程序员怎么受得了。
这岂不是让一个本不富裕的家庭更加的雪上加霜。那我只能靠Python维持学习了!
1.Requests
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。
2.安装requests
pip install xxxx -i https://pypi.douban.com/simple
或者参照教程
https://blog.csdn.net/qq_44176343/article/details/109362134
3.代码
"""
author:鹏鹏写代码"""
import requests
import re #正则表达式
import json
headers = {"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).textresult = 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 = 0for 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 + 1reader['rn'] = 10reader['callback'] = 'sf_edu_wenku_retype_doc_jsonp_%s_10' % (reader.get('pn'))reader['range'] = doc_rangen = iget_page(doc_url, reader)else: # 剩余不足10页doc_range = '_'.join([k for k, v in result_page[n:i + 1]])reader['pn'] = n + 1reader['rn'] = i - n + 1reader['callback'] = 'sf_edu_wenku_retype_doc_jsonp_%s_%s' % (reader.get('pn'), reader.get('rn'))reader['range'] = doc_rangeget_page(doc_url, reader)def get_page(url, data):response = requests.get(url, headers=headers, params=data).textresponse = 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)
运行结果展示:
接下来做课设岂不是有手就行了,一般就是组合键完成课设了呗!
Python利用requests库爬取百度文库文章相关推荐
- python使用requests库爬取淘宝指定商品信息
python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...
- 使用python中的Selenium爬取百度文库word文章
参考文章:Python3网络爬虫(九):使用Selenium爬取百度文库word文章,链接为: https://blog.csdn.net/c406495762/article/details/723 ...
- python生成QQ机器人爬取百度文库链接推送好友并生成词云
QQ机器人爬取百度文库链接推送好友并生成词云 一.环境准备 二.实现QQ机器人 1.QQ机器人介绍 2.安装方法 3.实现自己的QQ机器人 三.百度文库内容链接爬取推送好友 代码实现: 思路分析 1. ...
- 利用requests库爬取搜狗图片并存入文件夹下
看了一篇帖子,https://www.cnblogs.com/dearvee/p/6558571.html 这篇帖子作为一个引导,摸索着完成了第一个爬虫,现在将过程总结如下. 搜狗图片地址为 http ...
- python之利用requests库爬取西刺代理,并检验IP的活性
用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- 使用Python的requests库爬取网页表情包
一.目标网站 喜羊羊QQ表情,可爱的懒羊羊搞笑图片 二.开发思路 安装项目所需环境 导入所需的类库 定义一个函数用来获取图片 a. 获取网页源代码 b. 获取源代码中所有的图片 c. 筛选出目标图片 ...
- 使用python的requests库爬取微信公众号文章中的图片
1.首先导入我们需要的库: import requests from lxml import etree import os 以某篇文章为例,复制该文章连接: 2.使用requests库获取该网址的响 ...
- python 利用requests库抓取网站图片
截图放在下方: 我们来看下我们要的图片都在哪 框起来这些图就是我要的,数量多的不得了,看来这个网站积累了很久了,现在我们要用5分钟时间来拿到所有图片 接下来让我们看下源代码来解析一下这些图片的地址吧. ...
最新文章
- 新年新气象,用新年的喜庆来迎接的生活
- VS2013 编译程序时提示 无法查找或打开 PDB 文件
- Day 1: Bower —— 管理你的客户端依赖关系
- OSChina 周三乱弹 ——相亲妹子说了一句让我肾疼的话
- java HashMap实现中文分词器 应用:敏感词过滤实现
- 物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?
- datagridview列 值提取_Excel学校如何提取教职工员工名单-Leo老师
- [CTSC2017]吉夫特(Lucas定理,DP)
- Idea创建包以及导入jar包等操作
- drf 安装_drf 安装与配置
- 电脑屏幕卡住了按什么都没反应_刚买2个月,联想电脑屏幕出现坏点,售后回复:坏点不够3个不能保修...
- mysql 字段操作
- ODBC访问数据库(转载)
- python创建图形界面_Python入门四:创建第一个图形界面-Go语言中文社区
- js手机号批量滚动抽奖代码实现
- Microsoft Excel 教程:如何在 Excel 中自动填充数据?
- Django~1 一 什么是web框架?
- 「R shiny基础」使用shinyapp分享你的Shiny应用
- java emoji表情_java处理emoji表情的方法
- 硼碳氮纳米管的制备(碳纳米管包裹磁性金属复合纳米结构/多孔氧化物掺杂的碳纳米管包裹的碳纳米球/碳氮纳米管包裹纳米金属粒子/碳纳米管包裹Ni纳米线复合材料)