requests的基础使用
爬虫介绍
# 爬虫:又称网络蜘蛛,spider,一堆程序,从互联网中抓取数据----》数据清洗---->入库
# 爬虫需要掌握的知识
-抓取数据:发送网络请求(http),获得响应(http响应,响应头,响应体---》真正重要的数据在响应体中)
-python模块:requests,selenium
-清洗数据:解析拿回来的数据---》json,xml,html,二进制
-json解析,xml解析。。。
-python模块:re,json,beautifulsoup4(bs4),lxml,selenium
-入库:存文件,存mysql,redis,mongodb
-python模块:file,pymsql,redis-py,pymongo
# 反扒
-频率限制
-封ip(代理池),封账号(一堆小号:cookie池)
-请求头中带加密信息,referer,user-agent。。。
-响应回来的数据是加密
-验证码反扒(破解验证码---》第三方平台)
-js加密---》压缩---》加密方法其实在前端能看到---》看上去很晦涩
-手机设备:唯一id号
# 搜索引擎都是大爬虫
-百度输入框搜索---》美女---》去百度的数据库搜索----》显示在页面上
-百度一刻不停的在互联网中爬网页,爬完存到它的数据库
-seo优化:免费排中,排靠前
-sem优化:搜出来的靠前的,带广告的是花钱的,买断关键词
#可见即可爬
requests模块介绍和快速使用
# requests是模拟发送http请求的模块
-不仅仅可以做爬虫
-后端服务,请求别人服务
# pip3 install requests
# 使用requests发送get请求
import requests
# res 响应对象,http响应,python包装成了对象,响应头,响应头。。。在res中都会有
res=requests.get('https://www.cnblogs.com/liuqingzheng/p/16005866.html')
print(res.text) # 响应体转成字符串
get请求携带参数
# res = requests.get('http://www.aa7a.cn/?name=xxx&age=18')
# res = requests.get('http://www.aa7a.cn/',params={'name':'xxx',"age":18})
res = requests.get('https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3')
print(res.text) # 响应体转成字符串
print(res.url) # http://www.aa7a.cn/?name=xxx&age=18
url的编码和解码
from urllib.parse import quote,unquote
res = unquote('%E7%BE%8E%E5%A5%B3')
print(res)
携带请求头
# 发送get请求,有的网站,拿不到数据,模拟的不像,请求头的数据没有携带
# 请求头:1 User-Agent:客户端类型 2 referer :上一个页面的地址 3 cookie
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
res = requests.get('http://www.aa7a.cn/',headers=header)
print(res.text)
发送post请求,携带数据
header = {
'Referer': 'http://www.aa7a.cn/user.php?&ref=http%3A%2F%2Fwww.aa7a.cn%2Fuser.php%3Fact%3Dlogout',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
data = {
'username': '1535114884@qq.com',
'password': '111111',
'captcha': 'xxxx',
'remember': 1,
'ref': ' http://www.aa7a.cn/',
'act': 'act_login'
}
# data,json请求体的数据
# 编码方式是 urlencoded
# res = requests.post('http://www.aa7a.cn/user.php', data=data, headers=header)
# # 编码是json格式
# # res = requests.post('http://www.aa7a.cn/user.php',json=data,headers=header)
# print(res.text)
携带cookie两种方式
# 方式一:携带在请求头中
# header = {
# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
# 'Cookie':'deviceId=web.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiI2Mzk1OTEzMS1lMzE2LTRlNmItYWFlNi1mNDM0ZTEzZDQ4MzkiLCJleHBpcmUiOiIxNjkxMjIxODQ3NjAwIn0._tWo9ROyqRWXNCJA-ogCZ8MRBl4S-7tbB2wr6wLwci4; Hm_lvt_03b2668f8e8699e91d479d62bc7630f1=1688629848; __snaker__id=GmosTb6BqFJK2NsT; gdxidpyhxdE=bI5WeJdvSvxuozJLw6Sodah8g4wSXI%5CAGHA1Cn%2B573j5p5u3tTcpHw%2FKVWuoso76x2V1fxENE7jUBh%2FBZhMLRoXQdnvjcwO93W0A0QguQWpzQOGz6YiWdmXcJAbzpyI0flcPKu0o%2FajAM6spZ5gpHe2toaoZwaLt%5Cwm33oG19TcPouGk%3A1688630760372; YD00000980905869%3AWM_NI=hz7CdBywrI1ITXj%2BeDEs8Mphu1liSwPzyqW6zkG91wDDx50X1EV6qH%2FhEETlFaDIAXf4Rv2WI5bV6RCLGvy0zPMK7LULYiuRGg0HqFJuv9fgjQXVgpEy5gfhV02dVnM6Mlo%3D; YD00000980905869%3AWM_NIKE=9ca17ae2e6ffcda170e2e6ee91cb47aa9e8c94e245e9968ab2c85e838f9bb1c53cf4b397a4e173bba7b898ca2af0fea7c3b92aaca6f9a4e74abba9beaab4439888a6cce85087adf8aef364b7efa48ad27d94a6b792d63ebab589dab47d889cb8d6b354f39b9ad7f444edb88ba6d76886bf8caac454a6ec9e97b15d8bebaeb7b55a81948997fc3cba9083acb6489794978af85a85b900a9f44e8aabbadae56daa8f98b7e67c87a7fb88e56496f0fe85d5668fea838dee37e2a3; YD00000980905869%3AWM_TID=6PefENQWNmhBAAVQQUPQlgzdWOzmnwwf; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqaWQiOiJjdHVfNjg4NjI5OTM5MjkiLCJleHBpcmUiOiIxNjkxMjIxOTM5MzgxIn0.15Hu6OOKG9oMqsjiD_Wla0Wv15ibXNSM62cvdlXUDYg; Hm_lpvt_03b2668f8e8699e91d479d62bc7630f1=1688629965',
# }
# data = {
# 'linkId': '39196722'
# }
# res = requests.post('https://dig.chouti.com/link/vote', headers=header,data=data)
# print(res.text)
# 方式二:
# res1 = requests.get('http://www.aa7a.cn/',cookies=cookie)
requests的基础使用的更多相关文章
- 03爬虫-requests模块基础(1)
requests模块基础 什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块.功能强大,用法简洁高效. 为什么要是用requests模块 用以前的url ...
- python学习之-requests模块基础
安装版本:2.18 模块导入:import requests l 发送请求 发送GET请求: 获取GITHUB的公共时间线 r = requests.get(url='https://api.git ...
- requests用法基础-进阶
本节内容 模块的安装 -----------------------基础用法--------------------- GET用法.POST用法 -----------------------进阶用法 ...
- Python爬虫 requests库基础
requests库简介 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支 ...
- 一:requests爬虫基础
一,什么是爬虫? 描述: 本质是一个自动化程序,一个模拟浏览器向某一个服务器发送请求获取响应资源的过程. 爬虫的基本流程 robots.txt协议 编写一个robots.txt的协议文件来约束爬虫程序 ...
- 爬虫之requests模块基础
一.request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求. 2. 为什么使用request模块 - urllib需要手动处理url编码 ...
- requests模块基础
requests模块 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { bor ...
- 03 requests模块基础
1. requests 模块简介 什么是requests 模块 requests模块是python中原生的基于网络请求的模块,功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位.requests ...
- 05爬虫-requests模块基础(2)
今日重点: 1.代理服务器的设置 2.模拟登陆过验证码(静态验证码) 3.cookie与session 4.线程池 1.代理服务器的设置 有时候使用同一个IP去爬取同一个网站,久了之后会被该网站服务器 ...
- Requests的基础学习
官方文档链接:http://cn.python-requests.org/zh_CN/latest/ 安装: pip install requests 错误异常: 1.所有Requests显式抛出的异 ...
随机推荐
- 你真的懂synchronized锁?
1. 前言 synchronized在我们的程序中非常的常见,主要是为了解决多个线程抢占同一个资源.那么我们知道synchronized有多种用法,以下从实践出发,题目由简入深,看你能答对几道题目? ...
- 极简cfs公平调度算法
1. 说明 1> linux内核关于task调度这块是比较复杂的,流程也比较长,要从源码一一讲清楚很容易看晕 2> 本篇文章主要是讲清楚cfs公平调度算法如何将task在时钟中断驱动下切换 ...
- React课堂笔记1
一.概要 React是用于构建用户界面的MVVM框架. React拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它.认为它可能是将来Web开发的主流工具之一. 官网:https://z ...
- 从 HTTP 到 gRPC:APISIX 中 etcd 操作的迁移之路
罗泽轩,API7.ai 技术专家/技术工程师,Apache APISIX PMC 成员. 原文链接 Apache APISIX 现有基于 HTTP 的 etcd 操作的局限性 etcd 在 2.x 版 ...
- Linux rsyslogd服务学习
本篇笔记来自该博客: http://c.biancheng.net/view/1097.html 服务简介 在CentOS 6.x 中日志服务已经由 rsyslogd 取代了原先的 syslogd.r ...
- 5221. 【GDOI2018模拟7.10】A
题目大意: 给你一棵有根树,问你在这棵树上总共有多少棵子树的节点构成了一个完整的整数区间. 考试想法: 考试时就想到了正解,正解就是从下到上遍历整一棵树,每一个节点记录一下它的最小值min.最大值ma ...
- C# 当前进程是否有控制台窗口
WPF应用程序,在VS的项目属性中,可以设置输出类型: 那我们在代码中,如何判断应用的类型呢.有没有控制台?是否Windows应用程序还是控制台应用程序? Kernel32下函数GetConsoleW ...
- 群论中的 Lagrange 定理
今天跟 hym 打球时讲到了这个东西,突然发现证明拉格朗日定理的思想有许多跟轨道-稳定集定理很像,所以这里又记录一下. 为了证明 Lagrange 定理,我们需要了解一些关于子群和陪集的性质. 首先给 ...
- pytest插件开发
插件的加载方式 外部插件: pip install 安装的插件 本地插件: pytest 自动模块发现机制(conftest.py存放) 内置插件: 代码内部的_pytest目录加载 什么是hook ...
- Java设计模式简介(总结)
Java设计模式简介(总结) 什么是设计模式 Java设计模式是一组经过验证的解决特定问题的编程技术,这些技术可以帮助开发人员快速.有效地开发高质量的软件.使用设计模式是为了可重用代码.让代码更容易被 ...