requests应用

      一、简介

什么是requests模块:

requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。

为什么要使用requests模块

  • 因为在使用urllib模块的时候,会有诸多不便之处,总结如下:

    • 手动处理url编码
    • 手动处理post请求参数
    • 处理cookie和代理操作繁琐
    • ......
  • 使用requests模块:
    • 自动处理url编码
    • 自动处理post请求参数
    • 简化cookie和代理操作
    • ......

      二、使用

安装:

  • pip install requests

requests模块的使用流程

  • - 指定url
  • - 发起请求
  • - 获得响应数据
  • - 持久化存储

            案例:

        1、爬取搜狗搜索后的响应页面

import requests

url = ‘https://www.sogou.com/web‘

# 处理参数
wd = input("enter a word: ")
param = {
    ‘query‘:wd
}

# UA伪装
# User-Agent 请求头信息。请求载体的身份标识
headers = {
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36‘
}

# 发起请求
response = requests.get(url,params=param,headers=headers)

# 获取响应数据
page_text = response.content

# 持久化存储
fileName = wd + ".html"
with open(fileName, ‘wb‘) as f:
    f.write(page_text) 

print(f"{wd}下载成功")

  在爬取并存储图片时urllib模块比较方便

# 使用urllib模块爬取图片
from urllib import request

url = "https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=081aba3563224f4a5799741531ccf76f/c83d70cf3bc79f3d423d2823b4a1cd11738b29c1.jpg"
request.urlretrieve(url=url, filename=‘ycy.jpg‘)

  

2、用requests模块发起post请求获取百度翻译后的结果

import requests
headers = {
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36‘
}
url = ‘https://fanyi.baidu.com/sug‘  # ajax请求
wd = input("enter a english word: ")

# 参数的处理
data = {
    "kw": wd
}

# 发送post请求
response = requests.post(url=url,data=data,headers=headers)

# 如果确定返回的是json格式的数据,就可以直接.json拿到json对象
json_data = response.json()
print(json_data)
print(type(response.text))

  

3、肯德基门店查询

import requests
headers = {
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36‘
}
url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
wd = input(‘请输入查询地点:‘)

data = {
    ‘cname‘: ‘‘,
    ‘pid‘: ‘‘,
    ‘keyword‘: wd,
    ‘pageIndex‘: ‘1‘,
    ‘pageSize‘: ‘100‘,
}
json_data = requests.post(url=url, data=data, headers=headers).json()
print(json_data)

  

4、爬取化妆品生产许可信息管理系统服务平台http://125.35.6.84:81/xk/,每个公司详情页的数据。

需求分析: 指定页面的公司,该公司的详情页数据

# 域名:http://125.35.6.84:81/xk/
import requests
headers = {
    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36‘
}
# 首页url
url = ‘http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList‘
id_list = []
start_page= int(input(‘起始页:‘))
end_page= int(input(‘结束页:‘))
for i in range(start_page,end_page+1):
    data = {
        ‘on‘: ‘true‘,
        ‘page‘: str(i),
        ‘pageSize‘: ‘15‘,
        ‘productName‘:‘‘ ,
        ‘conditionType‘: ‘1‘,
        ‘applyname‘: ‘‘,
        ‘applysn‘: ‘‘,
    }
    json_data = requests.post(url=url,data=data,headers=headers).json()
    # print(json_data)
    for item in json_data[‘list‘]:
        id_list.append(item["ID"])

# 详情页url
url2 = ‘http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById‘
for id_item in id_list:
    data_id = {
        ‘id‘: id_item
    }
    json_data2 = requests.post(url=url2,data=data_id,headers=headers).json()
    print(json_data2)

  

原文地址:https://www.cnblogs.com/xihuanniya/p/10792501.html

时间: 2024-11-11 08:59:20

requests应用的相关文章

python接口自动化测试(二)-requests.post()

上一节介绍了  requests.get()  方法的基本使用,本节介绍  requests.post()  方法的使用: 本文目录: 一.方法定义 二.post方法简单使用 1.带数据的post 2.带header的post 3.带json的post 4.带参数的post 5.普通文件上传 6.定制化文件上传 7.多文件上传 一.方法定义: 1.到官方文档去了下requests.post()方法的定义,如下: 2.源码: 3.常用返回信息: 二.post方法简单使用: 1.带数据的post:

Python——深入理解urllib、urllib2及requests(requests不建议使用?)

深入理解urllib.urllib2及requests            python Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议[1] .Python语法简洁而清晰,具有丰富和强大的类库. urllib and urllib2 区别 urllib和urllib2模块都做与请求URL相关的操作,但

python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,post requests库中的Session.Cookie的使用 其它高级部分:认证.代理.证书验证.超时配置.错误异常处理等. 本节首先来了解一下requests库中如何发送get请求: 一.看下方法定义: 1.到官方文档去了下requests.get()方法的定义,如下: 2.点击右上角的[source],看一下它的源码如下: 看到最后一行return,get方法

Python+Requests接口测试教程(1):Fiddler抓包工具

本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测试和python+requests自动化的,首先本书确实写的比较基础,对基础内容也写的很详细,所以大神绕道. 为什么要先学fiddler? 学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始.结合抓包工具讲http协议更容易学一些. 1.1 抓fir

python之requests 乱七八糟

1.预配置 import requests ss = requests.Session() ss.headers.update({'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'}) # C:\Program Files\Anaconda2\lib\site-packages\urllib3\connectionpool.py:858: InsecureRequestWa

交换机死机,导致ceph ( requests are blocked ) 异常解决方法

问题描述: 万兆交换机死机后,导致在交换机上的ceph 的cluster网络会中断,用户正在对数据块的访问没有完成导致请求被blocked,同时部分pg会处于不同步状态,因此交换机重启后,通过ceph health会发现ceph集群不在OK 状态 health HEALTH_ERR 1 pgs inconsistent; 1 pgs repair; 2 requests are blocked > 32 sec; 1 scrub errorspg 6.89 is active+clean+inc

运维python拓展(一)requests使用

介绍 python的requests模块是python一个强大的第三方HTTP请求库,简单易用 安装: pip install requests import requests url='http://new.nginxs.net/ip.php' requet使用http各种方法 s=requests.get(url) s=requests.post(url) s=requests.delete(url) s=requests.options(url) requests模块请求传参 net_pa

Ubuntu中python环境下import requests错误的解决(学习过程问题记录)

python中导入模块:import requests提示错误,错误信息描述如下: >>>import requests Traceback (most recent last):   File "<stdin>", line 1, in <module> ImportError:No module named requests 意思就是说没有名为requests的模块,解决方案是在命令行下使用 pip install requests 来进行

Python requests

Python requests备忘 0x01 1 #coding:utf-8 2 import requests 3 4 res = requests.get('http://www.baidu.com') 5 print res.status_code 6 print res.headers['content-type'] #头部信息 7 print res.encoding #编码信息 8 print res.text9 print res.content 0x02 payload 1 im

python中requests的用法

一个最简单的demo: html = requests.get('http://www.cnblogs.com/liaocheng/p/5215225.html') return html.text 这个函数也可以设置提交参数和表头,当然,也有post版本. 以下为详细: 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: >>> import requests 然后,尝试获取某个网页.本例子中,我们来获取Github的公共时间线 >>&