美文网首页
爬虫request库的get,post,https跳过验证

爬虫request库的get,post,https跳过验证

作者: 紫弟 | 来源:发表于2018-05-13 22:03 被阅读0次

    在python3中,整合了urllib,urllib2。。。等等
    python3中使用urllib.request来使用
    request的用法总结:

    基本GET请求(headers参数 和 parmas参数)

    1. 最基本的GET请求可以直接用get方法
    response = requests.get("http://www.baidu.com/")
    
    1. 添加 headers 和 查询参数

    如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。

    importrequestskw = {'wd':'长城'}
    
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
    
    # params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
    
    response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
    
    # 查看响应内容,response.text 返回的是Unicode格式的数据
    
    # 查看响应内容,response.content返回的字节流数据
    
    # 查看完整url地址: response.url
    
    # 查看响应头部字符编码response.encoding
    
    # 查看响应码printresponse.status_code
    

    使用response.text 时,Requests 会基于 HTTP 响应的文本编码自动解码响应内容,大多数 Unicode 字符集都能被无缝地解码。

    使用response.content 时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。

    基本POST请求(data参数)

    1. 最基本的GET请求可以直接用post方法
    response = requests.post("http://www.baidu.com/", data = data)
    
    1. 传入data数据
      对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。
    import requests
    
    formdata = {"type":"AUTO","i":"i love python","doctype":"json","xmlVersion":"1.8","keyfrom":"fanyi.web","ue":"UTF-8","action":"FY_BY_ENTER","typoResult":"true"}
    
    url ="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    
    headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
    
    response = requests.post(url, data = formdata, headers = headers)
    
    print(response.text)
    
    # 如果是json文件可以直接显示response.json()
    

    Requests也可以为HTTPS请求验证SSL证书:

    要想检查某个主机的SSL证书,你可以使用 verify 参数(也可以不写)

    importrequestsresponse = requests.get("https://www.baidu.com/", verify=True)# 也可以省略不写# 
    
    response = requests.get("https://www.baidu.com/")printr.text
    

    跳过验证

    r = requests.get("https://www.12306.cn/mormhweb/", verify =False)
    

    相关文章

      网友评论

          本文标题:爬虫request库的get,post,https跳过验证

          本文链接:https://www.haomeiwen.com/subject/hldrdftx.html