首页 > 其他分享 >request模块

request模块

时间:2023-05-01 10:45:29浏览次数:31  
标签:https url request headers 537.36 模块 print requests

1 概述

需要安装request模块。

pip install requests

2 GET请求

2.1 爬取百度首页

有些网站是要审核http请求头部的,所以需要构造某些http请求头部字段。

#导入网络请求的第三方模块

import requests

#通过requests模拟发送网络请求

'''
#百度返回200
r = requests.get("https://www.baidu.com")
print(r)
'''

#模拟构造headers请求头信息
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

#豆瓣网返回418,会拒绝请求,这是因为豆瓣会检查user-agent参数。除了第一个url参数,后面参数必须指明参数名称
r = requests.get("https://www.douban.com",headers=headers)
print(r)
print(r.headers)

2.2 构造带参数的请求

使用谷歌的审核元素,查看网络中的http请求参数。打开谷歌浏览器,输入需要查看的网址,右键检查。

#导入网络请求的第三方模块

import requests

#构建参数的字典
kw = {
    'wd':'python'
}

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

r = requests.get('https://www.baidu.com/s?',params=kw,headers=headers)

print(r)

#手动设置编码格式
r.encoding = 'utf-8'

#查看响应内容,reponse.text返回的是unicode格式的数据。
#print(r.text)

#查看响应内容,reponse.content返回的字节流数据
#print(r.content)

#查看完整url地址
#print(r.url)

#查看响应头部字符编码
#print(r.encoding)

#查看响应码
#print(r.status_code)

with open("mybaidu.html", mode="w", encoding='utf-8') as f:
    f.write(r.text)
print("over!!")

3 POST请求

import requests

url = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'

data = {
    'log':'ceshi',
    'pwd':'123456',
    'wp-submit':'登录',
    'redirect_to':'https://wordpress-edu-3autumn.localprod.oc.forchange.cn',
}

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
}

r = requests.post(url,data=data,headers=headers)

r.encoding = 'utf-8'
print(r.text)

with open("post.html", mode="w", encoding='utf-8') as f:
    f.write(r.text)

4 处理json数据

商品评论是json数据。如下:

 

import requests

#这是京东商品评论区的内容,是json格式的数据。
url = 'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1682673372857&loginType=3&uuid=122270672.386066106.1672191342.1678343802.1682673339.7&productId=11936238&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1'

print(requests.get(url).json())

 

标签:https,url,request,headers,537.36,模块,print,requests
From: https://www.cnblogs.com/snow2021/p/17366246.html

相关文章

  • python 文件目录处理(os模块)
    在Python3中,您可以使用os模块来执行文件和目录操作。下面是一些常见的文件和目录操作及其示例:新建目录要在Python3中新建一个目录,请使用os.mkdir()方法,并将要创建的目录的路径作为参数传递给它。例如:importosos.mkdir('/path/to/new/folder')这将在指定的路径/path/t......
  • python 模块及引用
    在Python中,模块是一种组织代码的方式。它允许我们将相关的函数、类和变量放在一个文件中,并通过导入该文件来使用其中的代码。Python自带了很多常用的模块,同时我们也可以编写自己的模块。要调用一个模块,我们需要使用import语句。例如,如果我们想使用Python标准库中的math模块,可......
  • python requests模块
    requests是Python中用于发送HTTP请求的常用第三方库,可以方便地实现多种请求方式(如GET、POST、PUT、DELETE等),以及文件上传、Cookies管理等功能。以下是requests模块的使用方法和注意事项:安装requests:使用pip命令安装requests库,命令为"pipinstallrequests"。......
  • OverTheWire攻关过程-Bandit模块10
    我们继续访问lv9-lv10,查看信息机器翻译下一级的密码存储在文件数据中。txt在少数人类可读的字符串之一,前面有几个'='字符。我们登陆服务器使用上一关的命令,发现很多乱码我们看下string命令有点难懂直接上手,发现很多信息strings./data.txt|grep=我们进一步匹配发现密码记录密码......
  • 蓝牙模块AT指令
    AT模式的波特率为38400每次发送指令时,要加回车(\r\n)蓝牙模块常用AT指令模块复位指令响应参数AT+RESETOK无恢复默认状态指令响应参数AT+ORGLOK无获取/设置模块地址指令响应参数AT+ADDR?+ADDR:<参数>OKParam:模块蓝牙地址......
  • postgres-earthdistance模块使用
    一、快速安装pg+postgis使用docker安装dockerpullmdillon/postgis:latestdockerrun--namepostgresql-d-p5432:5432-v/home/pgdata:/var/lib/postgresql/data-ePOSTGRES_PASSWORD=123456-eALLOW_IP_RANGE=0.0.0.0/0mdillon/postgis:latest##如果碰到ipv4未开......
  • OverTheWire攻关过程-Bandit模块9
    我们打开lv8-lv9关卡,查看信息机器翻译下一级的密码存储在文件数据中。txt并且是唯一一行只出现一次的文本难度增大了我们登陆服务器我们查看提示uniq命令sort命令知识点:uniq命令Linuxuniq命令用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用。uniq可检查文本......
  • Request
    Request的作用:获取请求数据获取过程:1.浏览器会发送HTTP请求到后台服务器[Tomcat]2.HTTP的请求中会包含很多请求数据[请求行+请求头+请求体]3.后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中4.所存入的对象即为request对象,所以我们可以从reques......
  • [oeasy]python0141_自制模块_module_reusability_复用性
    自制包内容回忆上次内容上次导入了外部的py文件importmy_module导入一个自己定义的模块 可以使用my_module中的变量不能直接使用my_module.py文件中的变量只要加my_module.作为前缀就可以  直接导入导入变量、函数frommy_mo......
  • Python模块之struct
    0背景在工作中,有些二进制文件,是通过结构体写入文件而形成,我们有时候想解析这些文件,那如何操作呢?python的struct模块和C语言的结构体是相对应的,这样,只要知道结构体的定义,我们就可以通过struct模块写出一些解析工具。1.strcut模块介绍class struct.Struct(format)......