python3 requests

# -*- coding:utf8 -*-
import requests

#requests.get.  test(),content().encode('utf8'),response.url,response.
def getRsp_1():
    response = requests.get('https://www.baidu.com')
    # print(type(response.text)) #<class 'str'>,返回的是unicode编码的数据,如果网页以其他编码格式,那么就乱码。
    # print(response.content) #content返回的内容是字节流数据。bytes.所以可以设定自己的编码
    # print(response.content.decode('utf8'))#这样就是看到中文的百度首页。

    # print(response.url)
    # print(response.encoding)
    # print(response.status_code)

    """
    https://www.baidu.com/
    ISO-8859-1 这不一定是网页的编码。
    200
    """


    # 如果需要添加headers还有需要添加参数。那么不用进行urlencode()
    myheaders = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    }
    kw = {'wd':'黎明'}
    response = requests.get("http://www.baidu.com/s",params=kw,headers=myheaders)
    print(response.url) #http://www.baidu.com/s?wd=%E9%BB%8E%E6%98%8E
    # 发送的请求是:https://www.baidu.com/s?wd=黎明

    print(response.content.decode('utf8'))


#requests.post()
def getRsp_2():
    #Referer是拉勾网必须要求的请求参数,否则就被反爬。这个地址和浏览器框中可见地址一样。
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
        'Referer':'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
    }
    url_post ='https://www.lagou.com/jobs/positionAjax.json?city=%E6%9D%AD%E5%B7%9E&needAddtionalResult=false'
    # first = true & pn = 1 & kd = python
    data = {'first':'true','pn':'1','kd':'python'}
    response = requests.post(url_post,data=data,headers=headers)
    # print(response.text) #ok
    # 将网页返回的json数据进行格式化。
    print(response.json())#返回一个字典。


#使用代理。
def getRsp_3():

    # 从西刺代理中选取一个可用的。
    proxy = {'http':'125.118.240.66:6666'}
    response = requests.get('http://httpbin.org/ip',proxies=proxy)
    print(response.text) #ok



#使用cookie
def getRsp_4():
    response = requests.get('http://www.baidu.com')
    print(response.cookies)  #<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
    print(response.cookies.get_dict()) #这样就能得到cookie的字典。

    # 使用session,这个地方只是一个会话的对象而已

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
        'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
    }
    url = 'http://www.renren.com/PLogin.do'
    data = {'email':'18867319765','password':'woshidabendanyou'}
    session = requests.session()
    response = session.post(url,headers=headers,data=data)
    print(response.text) #ok



#处理不信任的ssl证书。例如12306的证书是自己构建的。
def getRsp_5():
    url = 'http://www.12306.cn/mormhweb/' #但是这个网站现在证书已经认证了。
    response = requests.get(url,verify=False)
    print(response.content.decode('utf8'))





if __name__ =="__main__":
    # getRsp_1()
    # getRsp_2()
    # getRsp_3()
    # getRsp_4()
    # getRsp_5()
    getRsp_6()

猜你喜欢

转载自blog.csdn.net/baidu_36831253/article/details/80152781