pythonrequests爬虫怎么用_python爬虫之requests的高级使用

1、requests能上传文件

# 导入requests模块

import requests

# 定义一个dict

files = {'file': open('D:/360Downloads/1.txt', 'rb')}

# post请求

response = requests.post("http://httpbin.org/post",files=files)

# 以字符串形式返回

print(response.text)

结果:

{

"args": {},

"data": "",

"files": {

"file": "data:application/octet-stream;base64,ZGVtbzAxxOO6ww=="

},

"form": {},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Content-Length": "151",

"Content-Type": "multipart/form-data; boundary=9502063320dadabde8e0197a299a933c",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.23.0",

"X-Amzn-Trace-Id": "Root=1-5e71d1bc-221f2f9c5a23aa1c11d21b3c"

},

"json": null,

"origin": "111.77.5.100",

"url": "http://httpbin.org/post"

}

Process finished with exit code 0

2、requests能获取cookies(网页识别码)

# 导入requests模块

import requests

# get请求

response=requests.get("https://fanyi.baidu.com")

# 获取cookies

print(response.cookies)

# 获取cookies信息

print(tuple(response.cookies))

# 调用items,遍历一个dict的key和value

for key,value in response.cookies.items():

print(key+"="+value)

结果:

]>

(Cookie(version=0, name='BAIDUID', value='72BE4EB04DB39349C036BA1BDF4D2895:FG=1', port=None, port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1616058282, discard=False, comment=None, comment_url=None, rest={}, rfc2109=True),)

BAIDUID=405DCB00DFE182D6581CBFAA3297C6BA:FG=1

Process finished with exit code 0

知道cookies的name,快速访问cookies的value:

# 导入requests模块

import requests

# get请求

response= requests.get('http://fanyi.baidu.com')

# 访问cookies的值

print(response.cookies['BAIDUID'])

# 以元组形式返回cookies

print(tuple(response.cookies))

结果:

B5A1A6A7B622F295DF802DA4D10F92CB:FG=1

(Cookie(version=0, name='BAIDUID', value='B5A1A6A7B622F295DF802DA4D10F92CB:FG=1', port=None, port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1616068429, discard=False, comment=None, comment_url=None, rest={}, rfc2109=True),)

Process finished with exit code 0

3、会话维持

cookies一个作用就是模拟登入,做会话维持,如何把自己的cookies发送到服务器上:

# 导入requests模块

import requests

# 导入json模块

import json

# 定义cookies,dict形式

cookies={"number":"1234567"}

# get请求,加上

response=requests.get("http://httpbin.org/cookies",cookies=cookies)

# 以字符串形式返回

print(response.text)

结果:

{

"cookies": {

"number": "1234567"

}

}

Process finished with exit code 0

或者用requests.session也可以把自己的cookies发到服务器上:

# 导入requests模块

import requests

# 建立session对象

session = requests.session()

# get请求

response = session.get('http://httpbin.org/cookies/set/number/1234567')

# 以字符串形式返回

print(response.text)

结果:

{

"cookies": {

"number": "1234567"

}

}

Process finished with exit code 0

4、证书验证

# 导入requests模块

import requests

# get请求

response = requests.get('https://www.12306.cn')

# 在请求https时,request会进行证书的验证,如果验证失败则会抛出异常

print(response.status_code)

如果无证书验证,会抛出异常。有证书验证,返回200。

怎么关闭证书验证:

# 导入requests模块

import requests

# get请求,关闭证书验证

response = requests.get('https://www.12306.cn',verify=False)

# 在请求https时,request会进行证书的验证,如果验证失败则会抛出异常

print(response.status_code)

结果:显示有warning

88c216a080d1d328491a584cddda5754.png

关闭证书验证后,怎么消除waring:

# 导入urllib3函数

from requests.packages import urllib3

# 导入requests模块

import requests

# 消除警告

urllib3.disable_warnings()

# get请求

response = requests.get('https://www.12306.cn', verify=False)

# 返回状态代码

print(response.status_code)

结果:200

Python爬虫Urllib库的高级用法

Python爬虫Urllib库的高级用法 设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Head ...

孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块

孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...

python爬虫之requests库

在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...

Python爬虫之requests

爬虫之requests 库的基本用法 基本请求: requests库提供了http所有的基本请求方式.例如 r = requests.post("http://httpbin.org/pos ...

Python 爬虫二 requests模块

requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...

python爬虫之requests的基本使用

简介 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作. 一 ...

python爬虫之requests库介绍(二)

一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...

Python爬虫之requests库介绍(一)

一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

Python爬虫之requests模块(1)

一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...

随机推荐

Android之ListView常用技巧

ListView是一个非常常用的列表控件,虽然在5.x时代ListView的风头正在逐渐的被RecyclerView抢去,但是ListView的使用范围依然十分广泛. 接下来的ListView的常用技 ...

MessagePack介绍

在项目中,服务端的人需要我研究messagepcak 进行数据的传输,对messagePack的了解就是传输的数据格式都是二进制,可以节省用户的流量,就因为这点 数据格式小,服务端决定采用msgpac ...

hadoop ssh无密码登陆

VM DHCP蛋疼了,这次整个static... scp

关于 ORA - 01861 文字与格式字符串不匹配问题(oracle存储过程)

一般问题(TO_DATE 和 TO_CHAR 两种格式互换)比如: 只要转化下格式就OK ,这里就不详细解释这两种格式的用法了! 今天把之前做好的模块拿到当地实习,不管怎么测 ,连续测试了好几个存储过 ...

ASP 验证、查询AD域账户信息

'''函数功能:查询域用户信息 '''参数说明:strAdmin-域管理账户:Password-域帐户密码:Domain-域服务器. ''' ''' 参考资料:http://www.experts-e ...

Spring4.0学习笔记(5) —— 管理bean的生命周期

Spring IOC 容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务 Spring IOC 容器对Bean的生命周期进行管理的过程: 1.通过构造器或工厂方法 ...

Data Mining 概念

数据挖掘概念: 数据挖掘是在大型数据库中.自动的发现有用信息的过程. 然. 这个有用只是一个感性的东西.比如我们从表中索引一行数据.这个算不上数据挖掘.因为它依赖的是数据的明显特征. 数据挖掘基本步骤 ...

iOS基础 - UITableView的数据源(dataSource)和代理(delegate)

UITableView的数据源(dataSource)和代理(delegate) UITableView需要一个数据源(dataSource)来显示数据,UITableView会向数据源查询一共有多少 ...

(59)Wangdao.com第十天_JavaScript 对象在 栈和堆

对象的属性值 如果要使用特殊的属性名,需 对象["属性名"] = 属性值       // 存 对象["属性名"]       // 取 obj["1 ...

[bzoj3522][bzoj4543][POI2014]HOTEL

题解: 比较难的一道题目 首先考虑暴力dp 我们会发现构成这种形状只有三种情况 1.三个点的lca相同 2.两个点lca相同,第三个点是lca的祖先 3.两个点lca相同,第三个点是lca祖先的子树中 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值