文档:从 pythoneer 到 pythonista 的100个模块
  链接:http://note.youdao.com/noteshare?id=2b95bb3651c21af80ca1936f8ecb1e0f&sub=635CA99241664308947C4F3BC1B5DDBF

  文档:递归详解.note
  链接:http://note.youdao.com/noteshare?id=5277776089054d9b730dc6b8d2114acd&sub=D2DC1AEE6417467A80D170CA55074A96

一、使用步骤 

1 # 导包
import requests
# 确定基础url
base_url = 'https://www.baidu.com'
# 发送请求,获取响应
response = requests.get(base_url)
# 处理响应内容

二、requests.get()---get请求方法参数详解

  1、参数   

 requests.get(
    url=请求url,
    headers =请求头字典,
    params = 请求参数字典。
    timeout = 超时时长,
    )——>response对象

  2、response对象的属性:

     服务器响应包含:状态行(协议,状态码)、响应头,空行,响应正文

    (1)响应正文:

        字符串格式:response.text
        bytes类型:response.content
    (2)状态码:response.status_code
    (3)响应头:response.headers(字典)
            response.headers['cookie']
    (4)响应正文的编码:response.encoding
                response.text获取到的字符串类型的响应正文,其实是通过下面的步骤获取的:
                  response.text = response.content.decode(response.encoding)
    (5)乱码问题的解决办法:

        产生的原因:编码和解码的编码格式不一致造成的。
          str.encode('编码')---将字符串按指定编码解码成bytes类型
          bytes.decode('编码')---将bytes类型按指定编码编码成字符串。
        a、response.content.decode('页面正确的编码格式')
          <meta http-equiv="content-type" content="text/html;charset=utf-8">
        b、找到正确的编码,设置到response.encoding中
          response.encoding = 正确的编码
          response.text——>正确的页面内容。

  3、get请求项目总结:

    a、没有请求参数的情况下,只需要确定url和headers字典。
    b、get请求是有请求参数。  
      在chrome浏览器中,下面找query_string_params,将里面的参数封装到params字典中。
    c、分页主要是查看每页中,请求参数页码字段的变化,找到变化规律,用for循环就可以做到分页。

三、post请求

  1、参数

 requests.post(
    url=请求url,
    headers = 请求头字典,
    data=请求数据字典
    timeout=超时时长
    )——response对象
    # post请求一般返回数据都是json数据。

  2、解析json数据的方法:

      (1)response.json()——>json字符串所对应的python的list或者dict
      (2)用json模块。
        json.loads(json_str)——>json_data(python的list或者dict)
        json.dumps(json_data)——>json_str

  3、post请求能否成功,关键看请求参数。

    如何查找是哪个请求参数在影响数据获取?——>通过对比,找到变化的参数。
    变化参数如何找到参数的生成方式,就是解决这个ajax请求数据获取的途径。
   

    寻找的办法有以下几种:
      (1)写死在页面。
      (2)写在js中。
      (3)请求参数是在之前的一条ajax请求的数据里面提前获取好的。

四、代理使用方法

  1、代理基本原理

    代理形象的说,他是网络信息中转站。实际上就是在本机和服务器之间架了一座桥。

  2、代理的作用

    (1)突破自身ip访问现实,可以访问一些平时访问不到网站。
    (2)访问一些单位或者团体的资源。
    (3)提高访问速度。代理的服务器主要作用就是中转,所以一般代理服务里面都是用内存来进行数据存储的。
    (4)隐藏ip。

  3、代理的分类

    (1)按照协议进行划分:
      ①FTP代理服务器---21,2121
      ②HTTP代理服务器---80,8080
      ③SSL/TLS代理:主要用访问加密网站。端口:443
      ④telnet代理 :主要用telnet远程控制,端口一般为23
    (2)照匿名程度:
      ①高度匿名代理:数据包会原封不动转化,在服务段看来,就好像一个普通用户在访问,做到完全隐藏ip。
      ②普通匿名代理:数据包会做一些改动,服务器有可能找到原ip。
      ③透明代理:不但改动数据,还会告诉服务,是谁访问的。
      ④间谍代理:指组织或者个人用于记录用户传输数据,然后进行研究,监控等目的的代理。

  4、在requests模块中如何设置代理

      proxies = {
        '代理服务器的类型':'代理ip'
        }
      response = requests.get(proxies = proxies)
      代理服务器的类型:http,https,ftp
      代理ip:http://ip:port

最新文章

  1. [NOIP2013]华容道
  2. EntityFramework6.0的Sql读写分离拦截器 和 MVC的 Action拦截器 对比
  3. 第三个Sprint冲刺第四天
  4. 41.把数组排成最小的数[Sort array to smallest value]
  5. BITMAP CONVERSION FROM ROWIDS
  6. Node.js学习 - Modules
  7. extjs 中比较常见且好用的监听事件
  8. VC++2010组件安装失败解决办法
  9. 在ASP.NET MVC中使用Knockout实践04,控制View Model的json格式内容
  10. crc16.c
  11. 阿里jstorm和storm区别
  12. h5小球走迷宫小游戏源码
  13. Disable File System Redirector For Windows x64 (Python recipe)(转)
  14. 《学习opencv》笔记——矩阵和图像操作——cvAbs,cvAbsDiff and cvAbsDiffS
  15. selenium 模块
  16. python3 练习题100例 (一)
  17. Python 操作 ElasticSearch
  18. mysql ErrorNo:1449
  19. IO 包中的其他类
  20. jqgrid扩展 获取表单数据

热门文章

  1. Java 多线程应知应会
  2. iOS中dealloc原理
  3. DSP开发程序相关问题总结
  4. 在windows上用apache+mod_wsgi服务部署django项目
  5. qq cookie
  6. (绿色)修正版gooflow流程解决方案(源码分享+在线演示+UI地址下载)
  7. python语言程序设计基础(第二版)第五章答案随笔
  8. MySql入门知识(一)
  9. C#_.NetFramework_Web项目_EXCEL数据导出
  10. C#深入浅出之数据类型