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显式抛出的异 ...
随机推荐
- 访问不到tomcat下的静态资源文件
问题:idea+tomcat 测试Servlet,居然访问不到与WEB-INF同级的静态资源1.html.又不是访问WEB-INF里的文件.... 分析:可能是开发目录中的文件没有自动复制到部署目录. ...
- java 回行矩阵的打印
n=3 n=4 1 2 3 1 2 3 4 8 9 4 12 13 14 5 7 6 5 11 16 15 6 10 9 ...
- PHP读取XML文件的三种方式
一 用 simplexml_load_file 读取xml文件 <?php $xml_array=simplexml_load_file('person.xml'); //将XML中的数据, ...
- LeetCode 周赛 340,质数 / 前缀和 / 极大化最小值 / 最短路 / 平衡二叉树
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周跟大家讲到小彭文章风格的问题,和一些朋友聊过以后,至少在算法题解方面确定了小彭的风格 ...
- C++ sizeof与strlen,并借此明晰内存对齐
前言 sizeof()与strlen()都是为了获取对象的长度.在正常编写C++的算法程序代码时,可能这两个都很少用到,因为各种stl容器的封装已经给了我们很大的便利,比如我们在想要获取自定义的vec ...
- Java学习笔记06
1. 类和对象 1.1 类和对象 客观存在的事物皆为对象,所以我们也常常说万物皆对象. 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为 ...
- 2023GDKOI游记
2023GDKOI游记 DAY-5: 3.5 周五回家提前一天返校,连续打了两场比赛,第二场清华ACM就只打出了最后一题世界杯(签到题),然后就只会做第二题了,调了一下午没想到正解. DAY-4: 3 ...
- 大规模 Transformer 模型 8 比特矩阵乘简介 - 基于 Hugging Face Transformers、Accelerate 以及 bitsandbytes
引言 语言模型一直在变大.截至撰写本文时,PaLM 有 5400 亿参数,OPT.GPT-3 和 BLOOM 有大约 1760 亿参数,而且我们仍在继续朝着更大的模型发展.下图总结了最近的一些语言模型 ...
- Vue中使用Echarts 脱坑
1. 数据问题,不像官方实例所提供的数据直接写在options对应的数据源里,开发中应当是后端接口请求过来的数据,一般来说,会将echarts图标抽成组件的形式,需要的数据源通过父组件传给子组件,但是 ...
- 张量(Tensor)、标量(scalar)、向量(vector)、矩阵(matrix)
张量(Tensor):Tensor = multi-dimensional array of numbers 张量是一个多维数组,它是标量,向量,矩阵的高维扩展 ,是一个数据容器,张量是矩阵向任意维度 ...