python爬虫_requests入门指引

111 阅读3分钟

文章目录

⭐前言

大家好,我是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
目标网站:www.csdn.net/

csdn-html
示例:

# 导入 requests 
import requests

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

print(response)
print(response.text)

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

  • 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博客
接口:blog.csdn.net//phoenix/we…
参数

  • 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

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