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网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
Python中的ConfigParser模块使用详解
May 04 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
python数据归一化及三种方法详解
Aug 06 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Python中的xlrd模块使用整理
Jun 15 Python
python playwrigh框架入门安装使用
Jul 23 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+DBM的同学录程序(3)
2006/10/09 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
Javascript this 的一些学习总结
2012/08/31 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
Python数据操作方法封装类实例
2017/06/23 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
Python面向对象进阶学习
2019/05/21 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
技校教师求职简历的自我评价
2013/10/20 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
女方回门宴答谢词
2014/01/14 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
委托书的样本
2015/01/28 职场文书
家长通知书家长意见
2015/06/03 职场文书
2015年依法治校工作总结
2015/07/27 职场文书