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中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
随机推荐
- Kali Linux-装机后通用配置
目录 前言 一. 网络优化 更换host 更换dns 添加源 二. 更新系统 三 .安装N卡驱动 四.修复 add-apt-repository 五.安装常用软件 安装apt自带的包 安装第三方的de ...
- 企查查app 初步探索
企查查app sign算法破解初步探索 之前有说过企查查的sign的解密,但这次是企查查app的sign算法破解,目前是初步进程. 已删除!!!! 上边一些变量已经找到了,其中就有时间戳,其余两个需要 ...
- yolo v2
https://blog.csdn.net/wfei101/article/details/79398563 https://blog.csdn.net/oppo62258801/article/de ...
- SpringBoot 动态配置邮箱发件人
SpringBoot 动态配置邮箱发件人 现在的消息模块少不了邮件发送.短信发送和手机推送的功能.邮件发送的功能历史最为悠久,也算的上烂大街的功能.一般在配置文件中设置好邮箱地址.账号.密码和发件服务 ...
- CocosBuilder 学习笔记(1) CCBReader 解析.ccbi文件流程
1. 简介 CocosBuilder是免费开源的Cocos2d UI编辑器. .ccb文件是CCB项目的原始文件. .ccbi文件是CCB项目发布后的生成的二进制文件.CCBReader可以快速通过该 ...
- MSIL实用指南-struct的生成和操作
struct(结构)是一种值类型,用于将一组相关的信息变量组织为一个单一的变量实体.所有的结构都继承自System.ValueType类,因此是一种值类型,也就是说,struct实例分配在线程的堆栈( ...
- Oracle - SQL语句实现数据库快速检索
SQL语句实现数据库快速检索 有时候在数据库Debug过程中,需要快速查找某个关键字. 1:使用PLSQL Dev自带的查找数据库对象,进行对象查找 缺点:查找慢.耗时. 2:使用SQL语句对数据库对 ...
- HTML 全局属性(摘自菜鸟教程)
HTML 全局属性 New : HTML5 新属性. 属性 描述 accesskey 设置访问元素的键盘快捷键. class 规定元素的类名(classname) contenteditableNew ...
- UVA P12101 【Prime Path】
题库 :UVA 题号 :12101 题目 :Prime Path link :https://www.luogu.org/problemnew/show/UVA12101
- ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (60000, 28, 28)
报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/3.Keras/3.构建各种神经网络/3.CNN ...