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的Django框架中的模版继承
Jul 16 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
Python字典遍历操作实例小结
Mar 05 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
Python使用指定字符长度切分数据示例
Dec 05 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
最新pycharm安装教程
Nov 18 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
php实现可逆加密的方法
2015/08/11 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python常用特殊方法实例总结
2019/03/22 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python中eval与int的区别浅析
2019/08/11 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
中学学校门卫岗位职责
2014/08/15 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
整改通知书格式
2015/04/22 职场文书
公司2015年终工作总结
2015/05/26 职场文书
工作表现证明
2015/06/15 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python
JavaScript中reduce()的用法
2022/05/11 Javascript
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers