Python爬虫requests库多种用法实例


Posted in Python onMay 28, 2020

requests安装和使用

下载安装:pip install requests

#requests模块

import requests

#发送请求 content:以二进制的形式获取网页的内容
response=requests.get("http://www.baidu.com").content.decode()
#response=requests.request("get","http://www.baidu.com").content.decode()

print(response)

添加请求头和参数

import requests

url="http://www.baidu.com/s?"

headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.138 Safari/537.36"
}
wd={"wd":"中国"}
response=requests.get(url,params=wd,headers=headers)
# 返回一个字符串形式的数据
data=response.text
# 返回一个二进制形式的数据
data2=response.content
print(data2.decode())

处理Post请求

处理get请求:get()方法

处理post请求:post()方法

import requests
import re

#构造请求头信息
header={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.122 Safari/537.36"
}#谷歌浏览器

#http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 网页上的url
url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"

key="靓仔"

#发送到web服务器的表单数据
formdata={
"i":key,
"from":"AUTO",
"to":"AUTO",
"smartresult":"dict",
"client":"fanyideskweb",
"salt":"15880563488791",
"sign":"cc2c40d740538fc5edc0380891faef27",
"ts":"1588053583943",
"bv":"f9c86b1fdf2f53c1fefaef343285247b",
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTlME"

}

response=requests.post(url,headers=header,data=formdata)

# 获取到的是json数据
# 对应的是字典
# print(response.json())

pat=r'"tgt":"(.*?)"}]]' #字符串中有"",再用''括起来表示字符串

# 获取到的是字符串
result=re.findall(pat,response.text)

print(result[0])

代理IP

import requests

#设置ip地址
#proxy={"http":"http://代理ip地址:端口号"}
#可以设置多个
proxy={
"http":"http://222.82.130.23:8060",
"http":"http://101.248.64.68:80",
}

response=requests.get("http://www.baidu.com",proxies=proxy)

print(response.content.decode())

获取响应的cookie

cookie:用户信息

import requests
response=requests.get("http://www.baidu.com")
#1.获取返回的cooketjar对象
cookiejar=response.cookies
#2.将cookiejar转换成字典
cookiedict=requests.utils.dict_from_cookiejar(cookiejar)
print(cookiedict)

session实现登陆

相比直接使用cookie,创建session可以得到新的cookie信息,不会出现cookie失效的情况

#使用session实现登陆

import requests

#构造请求头信息
header={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/81.0.4044.122 Safari/537.36"
}#谷歌浏览器

#创建session对象
ses=requests.session()

#构造登陆需要的参数
data={"email":"325*****@qq.com","password":"123321a"}

#通过传递用户名密码得到cookie信息
ses.post("http://www.renren.com/PLogin.do",data=data,headers=header)

#请求需要的页面,每次请求会带入cookie信息
response=ses.get("http://www.renren.com/880151247/profile")

print(response.text)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中关于日期时间处理的问答集锦
Mar 08 Python
在Python中使用pngquant压缩png图片的教程
Apr 09 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
python unittest实现api自动化测试
Apr 04 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
python区分不同数据类型的方法
Oct 14 Python
python求质数列表的例子
Nov 24 Python
opencv实现图像平移效果
Mar 24 Python
python实现高效的遗传算法
Apr 07 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
在pycharm中创建django项目的示例代码
May 28 #Python
python中有函数重载吗
May 28 #Python
Python可以实现栈的结构吗
May 27 #Python
Python如何脚本过滤文件中的注释
May 27 #Python
Python如何获取文件指定行的内容
May 27 #Python
Python web如何在IIS发布应用过程解析
May 27 #Python
利用Python实现某OA系统的自动定位功能
May 27 #Python
You might like
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
php数组合并的二种方法
2014/03/21 PHP
PHP中round()函数对浮点数进行四舍五入的方法
2014/11/19 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
jquery获取input的value问题说明
2010/08/19 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
用Python编写web API的教程
2015/04/30 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
基于Python os模块常用命令介绍
2017/11/03 Python
基于python实现高速视频传输程序
2019/05/05 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
python监控nginx端口和进程状态
2019/09/06 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
Python pandas如何向excel添加数据
2020/05/22 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
史上最全面的Java面试题汇总!
2015/02/03 面试题
设计师求职信
2014/07/01 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
《叶问2》观后感
2015/06/15 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python