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的web框架中的Model的教程
Apr 29 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python组合无重复三位数的实例
Nov 13 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
Python中的集合介绍
Jan 28 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
pytest中文文档之编写断言
Sep 12 Python
python实现名片管理器的示例代码
Dec 17 Python
Python引入多个模块及包的概念过程解析
Sep 21 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定时计划任务的实现方法详解
2013/06/06 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
jquery validation验证表单插件
2017/01/07 Javascript
移动端界面的适配
2017/01/11 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
python调用外部程序的实操步骤
2019/03/04 Python
PyTorch中的C++扩展实现
2020/04/02 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
经典的班主任推荐信
2013/10/28 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL