博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装第三方模块方法和requests
阅读量:7298 次
发布时间:2019-06-30

本文共 4281 字,大约阅读时间需要 14 分钟。

如何安装第三方模块  

   pip3

        pip3 install xxxx
    
    源码
        下载,解压
        进入目录 python setup.py install

requests

 

最常用的测试方法 import requestsa = 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 requestscookie = {
"__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):

 

转载地址:http://pygjm.baihongyu.com/

你可能感兴趣的文章
加载某个页面(A)时实现自动跳转到某个页面(B)
查看>>
Jenkins入门系列之——03PDF文档下载
查看>>
Digit Generator(生成元)
查看>>
php 入门笔记
查看>>
Python3.7安装PyQt5的方法
查看>>
Zoj 3781(构造)
查看>>
One error related to msxml4.dll (0x800C0014)
查看>>
“爆打”团队阿尔法发布 以及 第四周任务
查看>>
【堆】bzoj1293 [SCOI2009]生日礼物
查看>>
JavaScript的异步运行机制
查看>>
centos7安装HTTPS协议
查看>>
GNS3 模拟icmp端口不可达
查看>>
hdu 5677 ztr loves substring 多重背包
查看>>
WCF学习
查看>>
django 基础进 COOKIE
查看>>
[Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化
查看>>
@EnableWebMvc
查看>>
eclipse中输入的中文为繁体的问题
查看>>
.NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
查看>>
[CQOI2016]手机号码
查看>>