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获取指定路径下所有指定后缀文件的方法
May 26 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 Python
python迭代器常见用法实例分析
Nov 22 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
使用python去除图片白色像素的实例
Dec 12 Python
python集成开发环境配置(pycharm)
Feb 14 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
对python中arange()和linspace()的区别说明
May 03 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 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自动生成月历代码
2006/10/09 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
两个Javascript小tip资料
2010/11/23 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
Python列表生成器的循环技巧分享
2015/03/06 Python
Python paramiko模块的使用示例
2018/04/11 Python
python实现简单的文字识别
2018/11/27 Python
pytorch 模型可视化的例子
2019/08/17 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
写一个方法1000的阶乘
2012/11/21 面试题
招聘与培训专员岗位职责
2014/01/30 职场文书
调解协议书
2014/04/16 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
写给领导的感谢信
2015/01/22 职场文书
小学班主任个人总结
2015/03/03 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js