03爬虫-requests模块基础(1)
requests模块基础
什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块。功能强大,用法简洁高效。
为什么要是用requests模块
- 用以前的urllib模块需要手动处理url编码
- 手动处理post参数
- 处理cookie和代理操作繁琐
..............
requests模块
- 自动处理url编码
- 自动处理post参数
- 简化cookie和代理操作
...............
如何使用requests模块
- 安装:
- pip install requests
- 使用流程
- 指定url
- 基于requests模块发起请求
- 获取响应对象中的数据值
- 持久化存储
- 安装:
- 1、基于requests模块的get请求 需求:爬取搜狗指定词条搜索后的页面数据
import requests
#指定url
base_url = "https://www.sogou.com/web"
#搜索词条的关键字
query = {
"query":"python"
}
#模仿User-Agent(伪造电脑版本信息以及什么浏览器信息)
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
}
#requests.get(url, params=None, **kwargs),第一个是url地址,第二个关键字参数。
response = requests.get(url=base_url,params=query,headers=headers)
#因为发送的是get方式 所以返回的是一个字符串,即text可得相关html标签页
print(response.text)2、基于requests模块ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据
import requests
url = "https://movie.douban.com/j/chart/top_list"
#根据需求取数据
start = input("enter start:")
limit = input("enter limt:")
#请求头里面的请求关键字
param = {
"type": "",
"interval_id": "100:90",
"action": "",
"start": start,
"limit": limit,
}
#伪造机型和浏览器
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
}
#开始get请求,因为是ajax的get方法所以请求应该是get
response = requests.get(url=url,params=param,headers=headers)
#返回的是一个json数据,因此要用json解析
print(response.json())3、基于requests模块ajax的post请求 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定地点的餐厅数据
import requests
url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
#输入保存信息地点
keyword = input("enter a word:")
#请求头里面的请求关键字
for i in range(1,9):
data = {
"cname":"",
"pid": "",
"keyword": keyword,
"pageIndex": i,
"pageSize": "",
}
#伪造机型和浏览器
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
}
#因为是ajax的post方法所以post请求
response = requests.post(url=url,data=data,headers=headers)
#响应的是一个text数据,因此要用text解析
fileName = str(i)+".txt"
with open(fileName,"w",encoding="utf8") as f:
f.write(response.text)显示文件有:

4、综合练习 需求:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据http://125.35.6.84:81/xk/
import requests url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList"
ID_list = []
# 伪造机型和浏览器
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
}
for i in range(1,16):
data = {
"on": "true",
"page": i,
"pageSize": "",
"productName": "",
"conditionType": "",
"applyname": "",
"applysn": "",
} #因为是ajax的post方法所以post请求
response = requests.post(url=url,data=data,headers=headers).json() ID_list.append(response["list"][0]["ID"])
base_url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById"
for i in ID_list:
data = {
"id": i,
}
# 响应的是一个json数据,因此要用json解析
response = requests.post(url=base_url,data=data,headers=headers)
print(response.json())Jupyter notebook应该是库出问题了,找了很久都没弄到原因,还一直以为自己代码出现问题了。换到pycharm成功运行

03爬虫-requests模块基础(1)的更多相关文章
- 05爬虫-requests模块基础(2)
今日重点: 1.代理服务器的设置 2.模拟登陆过验证码(静态验证码) 3.cookie与session 4.线程池 1.代理服务器的设置 有时候使用同一个IP去爬取同一个网站,久了之后会被该网站服务器 ...
- 爬虫之requests模块基础
一.request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求. 2. 为什么使用request模块 - urllib需要手动处理url编码 ...
- 03 requests模块基础
1. requests 模块简介 什么是requests 模块 requests模块是python中原生的基于网络请求的模块,功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位.requests ...
- 爬虫requests模块 1
让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...
- 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例
requests模块的其他用法 #通常我们在发送请求时都需要带上请求头,请求头是将自身伪装成浏览器的关键,常见的有用的请求头如下 Host Referer #大型网站通常都会根据该参数判断请求的来源 ...
- 爬虫——requests模块
一 爬虫简介 #1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. #2.互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是 ...
- 2 爬虫 requests模块
requests模块 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,reques ...
- 爬虫--requests模块高级(代理和cookie操作)
代理和cookie操作 一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests ...
- 爬虫--requests模块学习
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
随机推荐
- DFS-递归入门
[递归入门] 题目描述 已知 n 个整数b1,b2,-,bn 以及一个整数 k(k<n). 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 ...
- 操作微信-itchat库的安装
基于pyCharm开发环境,在CMD控制台输入:pip install itchat 等待安装...... Microsoft Windows [版本 6.1.7601]版权所有 (c) 2 ...
- 图表控件业界革命 -Arction新产品LightningChart JS 上市
芬兰高科技企业Arction Ltd 在今年8月份推出了用于网页的数据可视化控件新解决方案—— LightningChart JS. 初次的基准测试表明,该产品为网页应用程序的数据可视化刷新了新的纪录 ...
- HDU 5135(再思考)
题意略. 思路:再思考后发现,为了构造出最大的三角形面积和,我们应该尽量让长的棍子相组合,这样构造出的三角形面积和最大,贪心能解. #include<bits/stdc++.h> usin ...
- VS2019没有.net core3.0模板的解决办法
今天装好了,net core sdk 3.0之后,打开Visual Studio2019后,新建项目时发现尽然没有.net core3.0的模板. 搜了下其他博主的文章,按照文章里做了如下设置: ...
- Redis数据类型的基本操作
Redis数据类型的基本操作 一.string类型 1.设置value
- java基础-多线程二
java基础-多线程二 继承thread和实现Runnable的多线程每次都需要经历创建和销毁的过程,频繁的创建和销毁大大影响效率,线程池的诞生就可以很好的解决这一个问题,线程池可以充分的利用线程进行 ...
- import同目录的py文件 :ModuleNotFoundError: No module named 'pdf'
报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/2.NLP/2.获取数据源和规范化/5.crea ...
- tabBar的内部控件
大体来说tabBar的内部其实除了UITabBarButton还有两个UIImageView 1.两个UIImageView是我们访问不到的,_UITabBarBackgroundView继承自UII ...
- poj1651 Multiplication Puzzle(简单区间dp)
题目链接:http://poj.org/problem?id=1651 题意:一系列的数字,除了头尾不能动,每次取出一个数字,这个数字与左右相邻数字的乘积为其价值, 最后将所有价值加起来,要求最小值. ...