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获取豆瓣电影简介代码分享
Jan 16 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
Python微信库:itchat的用法详解
Aug 14 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
Python实现FTP文件传输的实例
Jul 07 Python
详解python中的数据类型和控制流
Aug 08 Python
Python如何使用字符打印照片
Jan 03 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
Python数据分析之绘图和可视化详解
Jun 02 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实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
很好用的js日历算法详细代码
2013/03/07 Javascript
js实现网页收藏功能
2015/12/17 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
详解Vue爬坑之vuex初识
2017/06/14 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
得到Class的三个过程是什么
2012/08/10 面试题
《藤野先生》教学反思
2014/02/19 职场文书
入党推优材料
2014/06/02 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
golang 实现Location跳转方式
2021/05/02 Golang