Python之网络编程(requests模块)

一、requests模块的基本方法

import requests

1.res = requests.get(url,params={‘stu_name‘:‘小黑‘})   #发送get请求,传参k-v形式

2.data={‘user‘:‘useraccount‘,‘pwf‘:‘password‘}

res = requests.post(url,data=data)      #发送post请求,传参k-v形式

3.data={"name":"requests_name","grade":"天蝎座"}

res = requests.post(url,json=data)     #发送post请求,入参是json类型的

4.cookie = {‘zhangsan‘:‘abd9a0995f4696e1a60133220b32037a‘}

res = requests.post(url,data=data,cookies=cookie)  #发送post请求,带cookie的

5.header = {‘Referer‘:‘http://api.nnzhp.cn/‘}

res=requests.get(url,headers=header)  #发送get请求,带header的

6.res = requests.get(url,verify=False)   #发送https请求,需加上verify=False

7.res.json()     #把返回的结果转成字典,必须返回是json

8.res.text       #返回成字符串

9.res.content  #用来下载文件用的,返回的是二进制

10.res.headers  #获取到返回的所有header

11.res.cookies   #获取到返回的所有cookie

12.res.status_code   #获取到请求响应的状态码

二、例子

例子一(下载图片):

url6=‘https://aliimg.changba.com/cache/photo/855e5493-f018-44db-8892-c8660649327b_640_640.jpg‘res = requests.get(url6,verify=False) #verify=False如果是https的话加上这个with open(‘tu.jpg‘,‘wb‘) as fw: #打开一个文件     fw.write(res.content) #将请求获取到的结果写入到文件里去,是文件,所以是res.content二进制

例子二(获取qq群的成员信息存入到mongodb里以及下载成员的头像保存到本地):

 import pymongo,os client = pymongo.MongoClient(host=‘x.x.x.x‘,port=xxxx) db=client[‘qq_group‘] table = db[‘xxx‘] url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members"

data = {"gc":xxxxx,"st":0,"end":200,"sort":0,"bkn":xxxxxxx} header = {"Cookie":"pgv_pvi=1977809920; tvfe_boss_uuid=d8ce464d0b7bd6f6; RK=6RFHD8oPOz; ptcz=11c139fb4d425800954a94bcb78d8b04222ef05985e6b9ac493a28744decc178; pgv_pvid=744932512; ptui_loginuin=2851662269; o_cookie=2851662269; pt2gguin=o0469873580; uin=o0469873580; ptisp=ctc; pgv_si=s8086261760; [email protected]; p_uin=o0469873580; pt4_token=sf7OadX0vT5Mv4PiIQ3xkHbiI9quA5GB75z8lMcLgag_; p_skey=PcX00u1AVFRWKu6N1S62ooT13P*JDcCOhq64nknIlGQ_"}

res = requests.post(url=url,data=data,headers=header) mems = res.json().get("mems")#获取到该群的所有成员的信息 for i in mems:     mem = {         "qq":i.get("uin"),         "gender":i.get("g"),         "nick":i.get("nick"),         "card":i.get("card"),         "qage":i.get("qage")     }     if mem.get("gender") == 0:        mem[‘gender‘] = "男"     elif mem.get("gender") == 1:         mem[‘gender‘] = "女"     else:        mem[‘gender‘] = "未知"     if mem.get("card") == "":         mem[‘card‘] = "没有群名片"     table.insert_one(mem)     qq = mem.get("qq")     url= "http://q4.qlogo.cn/g?b=qq&nk={}&s=140".format(qq)      pics = requests.get(url)     abs_path=os.path.join(‘pics‘,str(qq)+‘.jpg‘) #拼接路径,都把图片保存到一个文件夹下面     with open(abs_path,"wb") as f:      f.write(pics.content)   print(‘%s的头像已经下载完成.‘%mem.get("nick"))

原文地址:https://www.cnblogs.com/yz-test/p/9387970.html

时间: 2024-10-31 11:20:15

Python之网络编程(requests模块)的相关文章

python学习笔记8:网络编程--requests模块

python操作网络,也就是打开一个网站,或者请求一个http接口. 使用requests模块,pip install requests 安装即可. requests 模块是基于urllib模块进行开发的,urllib用起来比较麻烦:传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码.所以我直接丢弃之 一.打开一个网站 二.请求一个接口 1.key-value传参的接口 2.json传参的接口 3.要添加cookie的接口 4.要加header的接口 5.要加权限的接口

python网络编程----requests模块

python访问网站可以用标准模块--urllib模块(这里省略),和requests(安装-pip install requests)模块,requests模块是在urllib的基础上进行的封装,比urllib模块功能更强到,易用 import json,requests #发送get请求 url = 'http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑马' req = requests.get(url) #发送get请求 print(req.t

网络编程requests模块的介绍

首要要安装requests,安装命令是pip install requests 1.发送请求和传递参数_get请求方式 import requests r = requests.get(url='http://www.itwhy.org')    #最基本的GET请求 print(r.status_code)    #获取返回状态 r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'})   #带参数的GET请

【Python】网络编程

1.TCP编程 2.SocketServer模块 3.Twisted框架 4.UDP编程 1.TCP编程--TCP是面向连接的,其一般的设计如下: # encoding:utf-8 ''' Created on 2014-6-20 @author: Administrator ''' from socket import socket, AF_INET, SOCK_STREAM import time import threading class SockServer(object): def

python基础网络编程--转

python之网络编程 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问题,网

Python网络爬虫-requests模块(II)

有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA

测开6 - Python(网络编程、接口开发)

python课的开头我已经反复听了好几遍了,始终没有接触到网络编程和接口开发这部分.再加上上周的课因为公司出游耽误了,内心其实还是很忐忑的,很担心跟不上进度或者跟的吃力,之后就没有什么动力和正向反馈支撑我继续学习了.一整天的课听下来觉得好像也没有想象中那么难,主要还是零散的知识点,容易出现眼睛会了脑子不会的情况辣!??????  1?? 网络编程 主要是发送请求??拿到结果??对结果进行处理.用到的是 request 模块,以下通过请求的不同类型来分别总结. a. get 请求 1 url =

python ==》 网络编程

 一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层模型 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 学习socket一定要先学习互联网协议: 1.首先:本节课程的目标就是教会你如何基于socket编程,来开发一款自己的C/S架构软件 2.其次:C/S架构的软件(软件属于应用层)是基于网络进行通信的 3.然后:网络的核心

python之网络编程

14.1.1 socket模块 在网络编程中德一个基本组件就是套接字.套接字主要是两个程序之间的信息通道. 套接字包括两个:服务器套接字和客户机套接字.创建一个服务器套接字后,让它等待连接.这样它就在某个网络地址处监听. 一个套接字就是一个socket模块中socket类的实例.它的实例化需要3个参数:第一个参数是地址族(默认是socket.AF_INET);第2个参数是流(socket.SOCK_STREAM,默认值)或数据报(socket.SOCK_DGRAM)套接字.第三个参数是使用的协议