python爬虫_requests入门指引

news2024/11/17 10:43:35

文章目录

    • ⭐前言
    • ⭐requests库
      • 💖 pip安装requests
      • 💖 requests get
      • 💖 requests post
    • 结束

⭐前言

大家好,我是yma16,本文分享关于python的requests库用法。
该系列文章:
python爬虫_基本数据类型
python爬虫_函数的使用

⭐requests库

requests可以用来发送http请求。
对比浏览器发送的请求

  • requests是在python的运行环境发送请求,不存在限制跨域,无ui界面,优势在于自动化
  • 浏览器发送请求被浏览器的安全机制限制,会存在跨域(协议、端口、域名),ui界面,用户体验好

💖 pip安装requests

pip安装

$ pip install requests

requests的api方法

apidescription
delete(url, args)发送 DELETE 请求到指定 url
get(url, params, args)发送 GET 请求到指定 url
head(url, args)发送 HEAD 请求到指定 url
patch(url, data, args)发送 PATCH 请求到指定 url
post(url, data, json, args)发送 POST 请求到指定 url
put(url, data, args)发送 PUT 请求到指定 url
request(method, url, args)向指定的 url 发送指定的请求方法

requests返回的api方法

apidescription
apparent_encoding编码方式
close()关闭与服务器的连接
content返回响应的内容,以字节为单位
cookies返回一个 CookieJar 对象,包含了从服务器发回的 cookie
elapsed返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
encoding解码 r.text 的编码方式
headers返回响应头,字典格式
history返回包含请求历史的响应对象列表(url)
is_permanent_redirect如果响应是永久重定向的 url,则返回 True,否则返回 False
is_redirect如果响应被重定向,则返回 True,否则返回 False
iter_content()迭代响应
iter_lines()迭代响应的行
json()返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)
links返回响应的解析头链接
next返回重定向链中下一个请求的 PreparedRequest 对象
ok检查 “status_code” 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
raise_for_status()如果发生错误,方法返回一个 HTTPError 对象
reason响应状态的描述,比如 “Not Found” 或 “OK”
request返回请求此响应的请求对象
status_code返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
text返回响应的内容,unicode 类型数据
url返回响应的 URL

💖 requests get

访问 csdn主页html
目标网站:https://www.csdn.net/

csdn-html
示例:

# 导入 requests 
import requests

# 发送请求
response = requests.get('https://www.csdn.net/')

print(response)
print(response.text)

运行结果:
request-get
访问 查询CSDN用户
接口:https://so.csdn.net/api/v1/relevant-search
参数

  • query {string} 用户名称,如 yma16
  • platform {string} 平台,如 PC

模拟请求查询 名为 yma16的csdn用户

# 导入 requests
import requests
url='https://so.csdn.net/api/v1/relevant-search'
params = {'query':'yma16','platform':'pc'}
# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
response = requests.get(url=url,params=params,headers=headers)

print(response)
print(response.json())

运行结果:
request-get-yma16
与浏览器中csdn查询一致
brower-csdn

💖 requests post

post点赞csdn博客
接口:https://blog.csdn.net//phoenix/web/v1/article/like
参数

  • userId 用户id
  • articleId 文章id
    示例给yma16的博客点赞
    注意:需要配置请求头cookie,这里我把cookie放在txt然后读入
# 导入 requests
import requests
# 读取cookie
def readTxtFile():
    path='./'
    with open(path+'cookie.txt', 'r', encoding='utf-8') as file:
        lines = file.read().splitlines()  # 读取第一行
        return str(lines[0])

# 点赞
def like_articleId(userId,articleId):#传递文章id
    requestUrl='https://blog.csdn.net//phoenix/web/v1/article/like'
    refererUrl="https://blog.csdn.net/{userId}/article/details/{articleId}"
    refererUrl.format(userId=userId,articleId=articleId)
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
        "cookie": readTxtFile(),
        "origin": "https://blog.csdn.net",
        "referer": refererUrl
    }
    data={
        'articleId':articleId
    }
    resp=requests.post(requestUrl,headers=headers,data=data)
    print(resp)
    print(resp.json())

if __name__ == '__main__':
    like_articleId('qq_38870145','131350469')

运行结果:
requests-like
点赞成功:
like-sussess

结束

本文分享python的requests使用到这结束!
scene

👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 感谢你的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Edge浏览器可以多开吗?

问答链接:Edge浏览器可以多开吗? 可以。 如果你的edge浏览器是默认路径安装的,那么打开命令提示符窗口输入以下两条命令即可启动一个数据完全隔离的edge浏览器。 mkdir C:\logs001 "C:\Program Files (x86)\Microsoft\Edge\Applicati…

shell [[]] 语法错误解决方式

错误如图: /linux/install.sh:行15: if [[ $contrainsha e *$contrainsname* ]] /linux/install.sh:行15: 条件表达式中有语法错误 附近有语法错误/linux/install.sh:行15: ]] [[]]语法 当[[ ]]判断expr成立时,退出状态为0,否则为非0值。…

STM32F103使用USART3/UART4乱码问题

源程序为USART1的配置,更改USART3/4相应寄存器测试,测试一直显示有规律乱码,收发不符。 void uart_init(u32 pclk,u32 bound) { float temp;u16 mantissa;u16 fraction; temp(float)(pclk*1000000)/(bound*16);//得到USARTDIVmantissa…

labview 公式节点转换(U16->S16)

问题:在和测力计通讯时,需要把读出的裸数据转化有符号整数 其它网友的文章可以进行转换 (笔记)labview各种进制转换(通讯得到的负数补码转换成负数原码)_labview数字间的进制转换_是孑然呀的博客-CSDN博客…

chatgpt赋能python:用Python计算AIC:一种常用的信息标准

用Python计算AIC:一种常用的信息标准 介绍 AIC(赤池信息准则)是一种用于模型选择的信息理论标准,旨在平衡模型复杂度和拟合准确度的权衡。在统计学和机器学习中,模型选择是一项关键任务,因为正确选择模型…

QT使用问题记录

VS中无法直接打开QT的Ui界面 需要确保安装上这个VS的QT扩展插件 还需要把QT的path添加到VS里面 这是添加好的 运行编译好的QT软件报 应用程序无法正常启动(0xc000007b),需要把QT的路径添加到系统环境变量的path中哦 加上这个就可以了

【python 第三方库安装换源】

换源: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/其他国内第三方库的下载源地址: 阿里云:http://mirrors.aliyun.com/pypi/simple/ 科技大学:https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣&a…

4.用python写网络爬虫,并发下载

目录 前言 4.1 100万个网页 4.1.1 解析Alexa列表 4.2 串行爬虫 4.3 多 线程爬虫 4.3.1 线程和进程如何工作 4.3.2 实现 4.3.3 多进程爬虫 4.4性能 4.5 本章小结 前言 在之前的章节中,我们的爬虫都是串行下载网页的,只有前一次下载完成之后才会…

【Nginx】第一章 Nginx简介

内容概览 1、nginx简介 (1)介绍nginx的应用场景和具体可以做什么事情 (2)介绍什么是反向代理 (3)介绍什么是负载均衡 (4)介绍什么是动静分离 2、nginx安装 3、nginx常用的命…

GDPU C语言 番外篇

1. 冒泡排序 &#x1f351; 冒泡排序详解 &#x1f351; 测试地址 #include<stdio.h>int main() {int n;int a[1010];scanf("%d", &n);int i,j;for(i 0; i < n; i)scanf("%d", &a[i]);//冒泡排序for(i 0; i < n-1; i)//最多需要进…

文件系统考古 3:1994 - The SGI XFS Filesystem

在 1994 年&#xff0c;论文《XFS 文件系统的可扩展性》发表了。自 1984 年以来&#xff0c;计算机的发展速度变得更快&#xff0c;存储容量也增加了。值得注意的是&#xff0c;在这个时期出现了更多配备多个 CPU 的计算机&#xff0c;并且存储容量已经达到了 TB 级别。对于这些…

7.NVIC中断优先级管理

1.NVIC中断优先级分组&#xff1a; 分组就是确定系统初始化中断分组之后&#xff0c;确定系统是哪一个分组&#xff0c;从而确定好每一个中断到底有几位抢占优先级和响应优先级&#xff1b;CM3内核支持256个中断&#xff0c;其中包含了16个内核中断和240个外部中断&#xff0c…

@Validated 和 @Valid校验提示信息的双语化以及动态参数添加

对于国际性应用来说&#xff0c;提示信息的双语化是必须的&#xff0c;那么Validated 和 Valid校验提示信息怎么来进行双语化呢&#xff0c;下面我们一起学习一下。 Validated 和 Valid校验提示信息的双语化 SpringBoot项目双语化配置 因为这里是基于SpringBoot项目学习的&a…

最佳实践|亚马逊可持续发展的架构模型

在过去的十年里面&#xff0c;亚马逊云科技一直都致力于帮助企业和开发者实现数字化转型&#xff0c;包括如何使用云技术帮助企业提高运营中资源利用率&#xff1b;如何通过云基础架构、容器、DevOps 进行业务的创新和敏捷性&#xff1b;未来的十年&#xff0c;亚马逊云科技将帮…

idea导入SpringBoot项目,没有启动按钮,没有maven

解决办法&#xff1a;&#xff08;快捷键双击Shift&#xff0c;在搜索框中搜索maven&#xff0c;点击Add Maven Project&#xff0c;就 行了&#xff09; 如果在idea出现下图这种&#xff0c;说明成功了

HAL库介绍

HAL 库&#xff08;Hardware Abstraction Layer&#xff0c;硬件抽象层&#xff09;和标准库&#xff08;Standard Peripheral Library&#xff0c;标准外设库&#xff0c;又称为 SPL&#xff09;都是 STM32 微控制器的固件库。它们的主要区别在于结构和抽象级别。 1.HAL 库&a…

使用IDEA启动项目,build时出现OOM相关异常

在使用idea启动项目时&#xff0c;即使使用参数设置了很大的JVM内存&#xff0c;但在项目构建时&#xff0c;仍会出现OOM异常&#xff0c;这一般是由于idea限制了项目构建时的heap size导致的&#xff0c;可以按需将这个数值调大。 参数位置&#xff1a;setting > Build,Ex…

C# 变量与类型

目录 一 变量类型 二 变量类型大纲 三 使用示范 一 变量类型 C# 有两种类型&#xff1a;值类型和引用类型。 值类型的变量直接包含它们的数据。 引用类型的变量存储对数据&#xff08;称为“对象”&#xff09;的引用。 对于引用类型&#xff0c;两个变量可以引用同一个对…

图像增强之图像锐化(边缘增强)之拉普拉斯算子

note mat (0,1,0;1,-4,1;0,1,0) code // 图像增强之图像锐化(边缘增强)之拉普拉斯算子 void GetLaplaceMat(Mat& laplaceMat) {laplaceMat (Mat_<int>(3,3) << 0,1,0,1,-4,1,0,1,0); } void EdgeSharpenLaplace(Mat&src, Mat& res) {Mat laplaceMa…

【微信小程序】添加了自定义组件引用还是报错

例如&#xff0c;在微信开发者工具中添加了自定义组件group-list&#xff0c;再到页面使用&#xff0c;点重新编译后&#xff0c;报错了。 在Console输出报错信息如下&#xff1a; Component is not found in path "components/group-list/group-list" (using by &q…