发送带数据post请求
import requests

# 发送post请求
data = { }
response = requests.post(url, data=data) # 内网 需要 认证
auth = (user,pwd)
response = requests.get(url,auth=auth)
发送代理post请求
import requests

# 1.请求url
url = 'http://www.baidu.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
} free_proxy = {'http': '27.17.45.90:43411'} response = requests.get(url=url, headers=headers, proxies=free_proxy) print(response.status_code)
发送带CA证书认证post请求
import requests

url = 'https://www.12306.cn/mormhweb/'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
} # 因为hhtps 是有第三方 CA 证书认证的
# 但是 12306 虽然是https 但是 它不是 CA证书, 他是自己 颁布的证书
# 解决方法 是: 告诉 web 忽略证书 访问
response = requests.get(url=url, headers=headers, verify=False)
data = response.content.decode() with open('03-ssl.html', 'w') as f:
f.write(data) # requests.exceptions.SSLError: HTTPSConnectionPool(host=
发送带cookie(字符串)post请求
import requests

# 请求数据url
member_url = 'https://www.yaozh.com/member/' headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
}
# cookies 的字符串
cookies = '_ga=GA1.2.1820447474.1535025127; MEIQIA_EXTRA_TRACK_ID=199Tty9OyANCXtHaSobJs67FU7J; WAF_SESSION_ID=7d88ae0fc48bffa022729657cf09807d; PHPSESSID=70kadg2ahpv7uuc8docd09iat4; _gid=GA1.2.133568065.1540383729; _gat=1; MEIQIA_VISIT_ID=1C1OdtdqpgpGeJ5A2lCKLMGiR4b; yaozh_logintime=1540383753; yaozh_user=381740%09xiaomaoera12; yaozh_userId=381740; db_w_auth=368675%09xiaomaoera12; UtzD_f52b_saltkey=ylH82082; UtzD_f52b_lastvisit=1540380154; UtzD_f52b_lastact=1540383754%09uc.php%09; UtzD_f52b_auth=f958AVKmmdzQ2CWwmr6GMrIS5oKlW%2BkP5dWz3SNLzr%2F1b6tOE6vzf7ssgZDjhuXa2JsO%2FIWtqd%2FZFelWpPHThohKQho; yaozh_uidhas=1; yaozh_mylogin=1540383756; MEIQIA_EXTRA_TRACK_ID=199Tty9OyANCXtHaSobJs67FU7J; WAF_SESSION_ID=7d88ae0fc48bffa022729657cf09807d; Hm_lvt_65968db3ac154c3089d7f9a4cbb98c94=1535025126%2C1535283389%2C1535283401%2C1539351081%2C1539512967%2C1540209934%2C1540383729; MEIQIA_VISIT_ID=1C1OdtdqpgpGeJ5A2lCKLMGiR4b; Hm_lpvt_65968db3ac154c3089d7f9a4cbb98c94=1540383761' # 需要的是 字典类型
cook_dict = {}
cookies_list = cookies.split('; ')
for cookie in cookies_list:
cook_dict[cookie.split('=')[0]] = cookie.split('=')[1] # 字典推导式
cook_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookies.split('; ')} response = requests.get(member_url, headers=headers, cookies=cook_dict) data = response.content.decode() with open('05-cookie.html','w') as f:
f.write(data)
发送post请求(自动携带session)
import requests

# 请求数据url
member_url = 'https://www.yaozh.com/member/' headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
}
# session 类 可以自动保存cookies === cookiesJar
session = requests.session()
# 1.代码登录
login_url = 'https://www.yaozh.com/login'
login_form_data = {
'username':'aoa1',
'pwd': 'l812',
'formhash': '54AEE419',
'backurl': 'https%3AF%2Fwww.yaozh.com%2F',
}
login_response = session.post(login_url,data=login_form_data,headers=headers)
print(login_response.content.decode())
# 2.登录成功之后 带着 有效的cookies 访问 请求目标数据
data = session.get(member_url,headers=headers).content.decode() with open('05-cookie2.html','w') as f:
f.write(data)

正则表达式

import re

# 贪婪模式  从开头匹配到结尾 默认  'm(.*)n'
# 非贪婪 'm(.*?)n'
one = 'mdfsdsfffdsn12345656n'
two = "a\d"
pattern = re.compile('a\b')
# pattern = re.compile('m(.*?)n') result = pattern.findall(two) print(result)
.匹配除换行符号\n 之外的
import re

# . 除了 换行符号\n 之外的 匹配
# re.S忽略\n
# re.I忽略大小写
one = """
msfdsdffdsdfsn
1234567778888N
""" pattern = re.compile('m(.*)n', re.S | re.I)
result = pattern.findall(one)
print(result)

匹配数字

import re

# 纯数字的正则 \d 0-9之间的一个数
pattern = re.compile('^\d+$')
one = '' # 匹配判断的方法
# match 方法 是否匹配成功 从头开始 匹配一次
result = pattern.match(one) print(result.group())

范围匹配

import re

# 范围运算 [123] [1-9]
one = '' pattern = re.compile('[1-9]') result = pattern.findall(one) print(result)
import re

one = 'abc 123'
patter = re.compile('\d+')
# match 从头匹配 匹配一次 result = patter.match(one) # search 从任意位置 , 匹配一次
result = patter.search(one) # findall 查找符合正则的 内容 -- list
result = patter.findall(one) # sub 替换字符串
result = patter.sub('#',one) # split 拆分
patter = re.compile(' ')
result = patter.split(one) print(result)

requests 后续1的更多相关文章

  1. selenium登录163邮箱,得到cookie,requests后续请求

    1.场景 很多时候登录操作是比较复杂的,因为存在各种反爆破操作,以及为了安全性提交数据都会存在加密.如果要完全模拟代码去实现登录操作是比较复杂,并且该网站后续更新了登录安全相关功能,那么登录的模拟操作 ...

  2. OkHttp 官方Wiki【设计思想】

    官方Wiki之Calls 原文位置:https://github.com/square/okhttp/wiki/Calls The HTTP client's job is to accept you ...

  3. #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇

    目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用 ...

  4. 爬虫requests模块 1

    让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...

  5. python Requests模块的简要介绍

    Requests的安装: pip install Requests Requests的使用: import requests url = "http://www.mzitu.com" ...

  6. requests高级用法

    会话对象 当你向同一主机发送多个请求时,session会重用底层的tcp连接,从而提升性能,同时session也会为所有请求保持 cookie. # _*_ coding: utf-8 _*_ imp ...

  7. python非转基因HTTP请求库--Requests: 让 HTTP 服务人类

    快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其假设你已经安装了 Requests.如果还没有,去安装一节看看吧. 首先,确认一下: Requests 已安装 Req ...

  8. python+requests+unittest API接口测试

    黑熊再网上查找了下接口测试相关的资料,大都重点是以数据驱动的形式,见用例维护在文本或表格中,而没有说明怎么样去生成想要的用例, 问题: 测试接口时,比如参数a,b,c,我要先测a参数,有(不传,为空, ...

  9. requests和BeautifulSoup

    一:Requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. 1.安装 ...

随机推荐

  1. rmi 工作原理

    rmi 工作原理 (转) 工作SocketJava应用服务器网络应用  RMI(Remote Method Invocation,远程方法调用)是Java的一组拥护开发分布式应用程序的API.RMI使 ...

  2. nginx学习地址

    http://www.cnblogs.com/magicsoar/p/5817734.html

  3. zabbix、agent端服务器图形化展示

    [root@agent ~]# cat /etc/hostname agent.zabbix.com [root@agent ~]# cat /etc/hosts 127.0.0.1   localh ...

  4. HDU 3117 Fibonacci Numbers( 矩阵快速幂 + 数学推导 )

    链接:传送门 题意:给一个 n ,输出 Fibonacci 数列第 n 项,如果第 n 项的位数 >= 8 位则按照 前4位 + ... + 后4位的格式输出 思路: n < 40时位数不 ...

  5. 浅谈optparse 解析命令行参数库

    使用的背景 在工作中我们经常要制定运行脚本的一些参数,因为有些东西是随着我么需求要改变的,所以在为们写程序的时候就一定不能把写死,这样我们就要设置参数 在python中我们可以通过sys 模板的arg ...

  6. debian 9 添加源

    1.将下面内容的添加入/etc/apt/sources.list(香港镜像) #For software deb http://mirrors.ustc.edu.cn/debian/ stretch ...

  7. 基于Linux的v4l2视频架构驱动编写

    其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做 ...

  8. SQL的运算符优先级

    注: 1.乘除的优先级高于加减: 2.同一优先级运算符从左向右执行: 3.括号内的运算先执行.

  9. tp volist需要便利两个数组时的处理办法

    你需要便利两个数组,并且需要使用key 和value的试的时候,volist是否先得有些捉鸡? 我们可以便利其中一个数组,而另一个利用数组的指针来操作 next($arr) 将数组指针下移 key($ ...

  10. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 1.什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现 ...