zoukankan      html  css  js  c++  java
  • 2018年6月12日笔记

    • 爬虫概念

    网络爬虫(又被称为网页蜘蛛,网页追踪者),是一种按照一定的规则,自动抓取网络信息的程序或脚本。

    • GET & POST

    HTTP与服务器交互的4个基本方法:

      GET:会向数据库发索取数据的请求,无论进行多少次操作,结果都是一样的。就像数据库的select操作。

      POST:向服务器端发送数据的,但是该请求会改变数据的种类等资源。就像数据库的insert操作。 --> 几乎目前所有的提交操作都是用POST请求的。

      PUT:向服务器端发送数据的,从而改变信息,该请求是用来修改数据的内容,但是不会增加数据的种类。就像数据库的update操作。

      DELETE:是用来删除某一个资源的。就像数据库的delete操作。

    GET与POST的区别:

    1)GET请求的数据附在URL之后(把数据放在HTTP协议头中)

      以 ?分割URL和传输数据,参数间以 & 相连

        英文/数字   --->   原样

        空格    --->   +

        中文/其他字符   --->   %XX (16进制ASCII)

        POST把数据放在HTTP包的包体中

    2)GET可提交的数据量与URL长度有关

      URL不存在参数上限问题,HTTP协议也没对URL长度进行限制;

      主要是特定浏览器对它的限制,IE对URL长度限制是2083字节(2K+35);

      而其他浏览器,如FireFox,理论上没有限制,取决于OS的支持。

        POST对数据是没有限制的,限制主要是服务器的处理能力。

    3)POST安全性比GET高

      通过GET提交数据,用户名和密码将以明文形式出现在URL上

    • requests模块:get方式
    1 import requests
    2 
    3 params = {"key1": "hello", "key2": "world"}
    4 url = "http://www.jd.com"
    5 r = requests.get(url=url, params=params) # requests.get("https://www.jd.com/?key1=hello&key2=world")
    6 print(r.url)
    https://www.jd.com/?key1=hello&key2=world
    • requests模块:post方式
    1 import requests
    2 
    3 params = {"key1": "hello", "key2": "world"}
    4 r = requests.post("http://httpbin.org/post", data=params)
    5 print(r.text)
    {    
    "args":{},
    "data":"",
    "files":{},
    "form":{"key1":"hello","key2":"world"},
    "headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","Connection":"close","Content-Length":"21","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org","User-Agent":"python-requests/2.18.4"},
    "json":null,
    "origin":"112.0.151.7",
    "url":"http://httpbin.org/post"
    }
    • requests模块:text与content
     1 import requests
     2 
     3 url = "https://www.qiushibaike.com/"
     4 r = requests.get(url=url)
     5 
     6 print(r.text)           # 用于提取文本
     7 print(type(r.text))     # <class 'str'>
     8 
     9 print(r.content)        # 用于提取图片、文件等
    10 print(type(r.content))  # <class 'bytes'>
    • requests模块:session()会话对象
    1 import requests
    2 
    3 s = requests.session()
    4 
    5 url = "http://www.jd.com"
    6 
    7 s.get(url=url)
    8 # 所有一次会话的信息都保存在s中,只需对s进行操作就可以了
    • requests模块:获取cookie信息
     1 import requests
     2 
     3 def save_cookie():
     4     s = requests.session()
     5     s.get("https://www.hao123.com/")
     6     print(s.cookies)
     7     print(s.cookies.keys())
     8     print(s.cookies.values())
     9     for i in s.cookies:
    10         print(i)
    11         print(i.name, i.value, i.domain, i.path, i.expires)
    12 
    13 if __name__ == "__main__":
    14     save_cookie()
    <RequestsCookieJar[<Cookie BAIDUID=E82C769F55DF08DAF85021675FA3A3AB:FG=1 for .hao123.com/>, <Cookie __bsi=6671906315530985296_00_74_N_N_205_0303_c02f_Y for .www.hao123.com/>, <Cookie hz=0 for .www.hao123.com/>, <Cookie ft=1 for www.hao123.com/>, <Cookie v_pg=normal for www.hao123.com/>]>
    ['BAIDUID', '__bsi', 'hz', 'ft', 'v_pg']
    ['E82C769F55DF08DAF85021675FA3A3AB:FG=1', '6671906315530985296_00_74_N_N_205_0303_c02f_Y', '0', '1', 'normal']
    <Cookie BAIDUID=E82C769F55DF08DAF85021675FA3A3AB:FG=1 for .hao123.com/>
    BAIDUID E82C769F55DF08DAF85021675FA3A3AB:FG=1 .hao123.com / 1560443017
    <Cookie __bsi=6671906315530985296_00_74_N_N_205_0303_c02f_Y for .www.hao123.com/>
    __bsi 6671906315530985296_00_74_N_N_205_0303_c02f_Y .www.hao123.com / 1528910617
    <Cookie hz=0 for .www.hao123.com/>
    hz 0 .www.hao123.com / None
    <Cookie ft=1 for www.hao123.com/>
    ft 1 www.hao123.com / 1528991999
    <Cookie v_pg=normal for www.hao123.com/>
    v_pg normal www.hao123.com / None

      

  • 相关阅读:
    Anti-Aliasing SSAA MSAA MLAA SRAA 简介
    开源二维码QR CODE编码/解码 识别 库
    Shadow Map阴影贴图技术之探
    3D场景的制作步骤
    python实现对excel数据进行修改/添加
    selenium3 + python 爬虫
    Mock实现模拟python的对象
    Moco模拟服务器实现请求&响应 (一)
    python之Beautiflusoup操作
    python使用ddt模块对用例执行操作
  • 原文地址:https://www.cnblogs.com/karl-python/p/9180962.html
Copyright © 2011-2022 走看看