安装第三方模块方法和requests
如何安装第三方模块
pip3
pip3 install xxxx
源码
下载,解压
进入目录 python setup.py install
requests
最常用的测试方法
import requests a = requests.get("http://127.0.0.1:8000/test/", )
python 标准库中提供了:urllib等模块以供http请求,但是,它的API太渣了。他是为另一个时代、另一个互联网所创建的。它需要巨大的工作,甚至包括各种方法辅助,来完成简单的工作,所以选择requests
一堆废话,简单的说就是urllib,urllib2是python底层的东西,当请求URL的时候,requests可以模拟浏览器完成一系列动作,而且代码量比较少,不过urllib也有自己的优势
import urllib.request
f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = f.read().decode('utf-8') import urllib.request
req = urllib.request.Request('http://www.example.com/')
req.add_header('Referer','http://www.python.org')
r = urllib.request.urlopen(req)
result = r.read().decode('utf-8')
Requests是使用Aachen2 Licensed 许可证的基于python开发的HTTP库,其在python内置模块的基础上进行了高度的封装,从而使得pythoner进行网络请求时,变的美好许 多,使用Requests可以轻而易举的完成浏览器可有的任何操作
1)、无参数实例
import requests
ret = requests.get(''https://github.com/timeline.json'')
print(ret.url)
print(ret.text)
2)、有参数实例
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
ret = quests.get("http://httpbin.org/get", params=payload)
print(ret.url)
print(ret.text)
3)、其他请求
requests.get(url,params=None,**kwargs)
requests.post(url,data=None,json=None,**kwargs)
requests.put(url,data=None,**kwargs)
requests.head(url,**kwargs)
requests.delete(url,**kwargs)
requests.path(url,data=None,**kwargs)
requests.options(url,**kwargs)
#以上方法是在此方法的基础上构建
requests.request(method, url, **kwargs)
更多requests模块相关的文档见:http://cn.python-requests.org/zh_CN/latest/
4)、http请求和XML实例
实例:检测qq账号是否在线
import urllib
import requests
from xml.etree import ElementTree as ET
# 使用内置模块urllib发送HTTP请求,或者XML格式内容
""" f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = f.read().decode('utf-8') """ # 使用第三方模块requests发送HTTP请求,或者XML格式内容 r = requests.get('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = r.text
# 解析XML格式内容
node = ET.XML(result) # 获取内容
if node.text == "Y":
print("在线")
else:
print("离线") 复制代码
"""
5)、查看火车停靠信息
import urllib
import requests
from xml.etree import ElementTree as ET # 使用内置模块urllib发送HTTP请求,或者XML格式内容
""" f = urllib.request.urlopen('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')
result = f.read().decode('utf-8') """ # 使用第三方模块requests发送HTTP请求,或者XML格式内容 r = requests.get('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')
result = r.text # 解析XML格式内容 root = ET.XML(result)
for node in root.iter('TrainDetailInfo'):
print(node.find('TrainStation').text,node.find('StartTime').text,node.tag,node.attrib)
Requests post方法向后端传递cookie参数, 模拟登陆 --》 注意: 是cookies
#!/usr/bin/env python
# -*- coding:utf-8 -*- import requests cookie = {"__sessionId__": "a632155ffbc63469da6b394b9ccacb768f6cc407"} url = "http://192.168.2.137:8888/show_sample_user_all_article" session = requests.Session() ret = session.post(url, data={"UserID": 123456}, cookies=cookie) result = ret.json() print(result)
print(result["value"])
看源码:
def post(self, url, data=None, json=None, **kwargs):
r"""Sends a POST request. Returns :class:`Response` object. :param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
:param json: (optional) json to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:rtype: requests.Response
""" return self.request('POST', url, data=data, json=json, **kwargs)
def request(self, method, url,
params=None, data=None, headers=None, cookies=None, files=None,
auth=None, timeout=None, allow_redirects=True, proxies=None,
hooks=None, stream=None, verify=None, cert=None, json=None):
requests增加代理模式
#!/usr/bin/env python
# -*- coding:utf- -*- import requests, re, os, sys, random, time
from bs4 import BeautifulSoup
from urllib.parse import unquote def aaa():
# sum_ip_url = "http://api3.xiguadaili.com/ip/?tid=558422469336006&num=1&protlcol=https"
sum_ip_url = "http://api3.xiguadaili.com/ip/?tid=558462304396750&num=1000"
sum_ip_data = requests.get(sum_ip_url) timeout =
# proxie = {"https": "https://" + random.choice(li)}
proxie = {"http": "http://" + sum_ip_data.text} content = requests.get("https://www.cnblogs.com/renfanzi/p/9243400.html", proxies=proxie, timeout=timeout, verify=False).text
print(str(content)) time.sleep() if __name__ == '__main__':
# for i in range(): aaa()
# pass
安装第三方模块方法和requests的更多相关文章
- 【Python】[模块]使用模块,安装第三方模块
一个.py文件就称之为一个模块(Model)按目录来组织模块的方法,称为包(Package)每一个包目录下面都会有一个__init__.py的文件内置函数1.使用模块 导入模块 import sys ...
- python 安装第三方模块
在Python中,安装第三方模块,是通过setuptools这个工具完成的. 如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了. 如果你正在使用Windows,请首先 ...
- sae python安装第三方模块
sae python安装第三方模块 经过这一个星期的折腾,发现编程真心不是看出来的,真心是跟着书上的代码敲出来的.sae的服务做得很好,不过有时候会崩就是了.当sae上没有自己所需要的第三方模块时,可 ...
- Nginx编译安装第三方模块http_substitutions_filter_module2222
Nginx编译安装第三方模块http_substitutions_filter_module Rming -- 阅读 安装 Http 编译 module filter nginx 模块 >> ...
- Nginx编译安装第三方模块http_substitutions_filter_module
Nginx编译安装第三方模块http_substitutions_filter_module 分类:服务器技术 作者:rming 时间:-- . >>ngx_http_substitu ...
- nginx 安装第三方 模块
查看nginx在安装时开启了哪些模块 如果你nginx是rpm包安装的,直接用如下命令nginx -V 如果你是源码包编译安装,假如你的安装路径是/usr/local/nginx,那么你可以使用: / ...
- Anaconda安装第三方模块
Anaconda安装第三方模块 普通安装: 进去\Anaconda\Scripts目录,conda install 模块名 源码安装: 进去第三方模块目录,python install setup.p ...
- nanopi NEO2 学习笔记 2:安装 pip 和 pip 安装第三方模块
我现在越来越喜欢用python做开发了,特别是知道了python还能用rpi.gpio库操作 NEO2 的 io 口之后,更是激动 在进行一下的操作之前,要先更换国内的 apt arm64 源,并更新 ...
- python——模块(Module)的概念、使用以及安装第三方模块
一.模块定义 python中,一个.py文件就是一个模块(Module). 使用模块的好处:1.提高了代码的可维护性.我们把函数进行分组,分别放在不同的模块中.2.编写代码不必要从0开始,当一个模块编 ...
随机推荐
- 将“早期版本的Windows”改名
将“早期版本的Windows”改名,并修改系统等待时间 问题描述: 先装Windows XP,再装Windows 7,启动菜单会出现“早期版本的Windows”与“Windows 7”两个 ...
- Reverse Nodes in k-Group
Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and ret ...
- Linux Linux程序练习十九
题目:编写一个同步服务器模型 要求: )客户端A主机给服务器B主机发送报文, )B服务器主机收到报文以后同时分发给C1主机.C2主机: )C1主机和C2主机打印出客户端A的报文 bug总结:本来这道题 ...
- 关于Advanced Installer 11.0打包软件过程一些记录
1.想要安装后在默认网站下为一个虚拟目录,IIs,Web应用程序,选中虚拟目录是一个Web应用程序.同时修改常规>文件夹,重新指向网站文件所在目录,不然会少一级目录 2.如果想单独的应用程序池, ...
- 十分钟轻松让你认识ASP.NET MVC6
这篇文章说明下如何在普通编辑器下面开发mvc6应用程序. 上篇文章: 十分钟轻松让你认识ASP.NET 5(MVC6) 首先安装mvc6的nuget包: 可以看到在project.json文件中添加了 ...
- CPU使用率终于正常了——记一次订餐系统事故处理
引子 经过漫长的等待,儿子终于出生了.欣喜之余,就是各种手足无措,顾此失彼了.因为不懂,心里总是慌慌的,有点小毛病,恨不得一步就到医院. 婆媳育儿观念的差异,让心乱如麻的我,又成了风箱里的老鼠,两个不 ...
- go mysql 初窥。查询
先来几句草泥马草泥马... 首先要安装Go-SQL-Driver/MySql,下载安装前要保证你的GOPATH对应的是你的项目目录 export GOPATH=/var/www/gogogo/test ...
- 【jQuery】 jQuery上下飘动效果
jQuery实现图片上下飘动效果 function moveRocket() { $(".smallShip") //2000毫秒内top = top + 60: .animate ...
- golang使用yaml格式解析构建配置文件
现在主流的配置文件格式有这么几种,xml.yaml.config… xml就算了,太挫了,太土, 太繁琐… config 就是mysql,apache my.cnf的那种格式,这个格式适合功能分层, ...
- MySQL架构优化实战系列1:数据类型与索引调优全解析
一.数据类型优化 数据类型 整数 数字类型:整数和实数 tinyint(8).smallint(16).mediuint(24).int(32).bigint(64) 数字表示对应最大存储位数,如 ...