爬虫——Requests库简单入门

作者: weifeng_genius | 来源:发表于2018-08-12 19:00 被阅读7次
    • 相比url,url2库来说,Requests代码量少了很多,比较方便。

    GET请求:

    import requests
    date = {'key':'value'}
    r = requests.get(url,params=date) #params地内容一般是网址后面`?`后面地参数,比如搜索内容之类的~
    

    得到一个Response对象,用r.content得到二进制文件,r.text得到文本文件,r.headers得到响应头。
    除此之外还有很多可选参数,比如timeout设置超时;proxies设置代理。

    POST请求:

    import requests
    postdate = {'key':'value'}
    r = requests.post(url,date = postdate)
    

    爬取一般界面的框架:

    #获取HTML信息
    def GetHtml(url):
        try:
            kv = {'user-agent': 'Mozilla/5.0'}  
            r = requests.get(url, timeout=5, headers = kv)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return r.text    #看情况要返回什么。
        except:
            print('爬取失败')
    

    Cookies

    1.自定义Cookie值发送出去:

    headers = dict(...)
    cookies = dict(…)
    r = requests.get(url, headers = headers, cookies = cookies)
    

    2.自动处理Cookies的方式:Session

    • 在登陆中用Session函数处理Cookie的方式很常用。
      详解见:https://www.cnblogs.com/zhaof/p/7211253.html
      认证的机制。每当我们使用一款浏览器访问一个登陆页面的时候,一旦我们通过了认证。服务器端就会发送一组随机唯一的字符串(假设是123abc)到浏览器端,这个被存储在浏览端的东西就叫cookie。而服务器端也会自己存储一下用户当前的状态,比如login=true,username=hahaha之类的用户信息。
    • Cookies —— 用r.cookies() 可以获得cookies ,再把cookies 作为参数传入网站即可。但是面对较复杂的网站一般它都会调整cookies,可以用requests的session函数。cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了。
    • session = requests.Session() —— Session(会话)对象可以持续跟踪会话信息,像cookie,header甚至一些HTTP协议的信息,比如HTTPAdapter。
    • Session的应用:
    data = {'username':un,
            'password':pw,
            }
    session = requests.Session()
    #POST需要找到action触发的网页,而不是原来网页。
    res = session.post(url+'/action.php?act=Login',data = data,headers = my_header)
    #到此完成登陆,session保留cookies等信息。
    res2 = session.get(url)
    # 后面都用创建的会话来操作。
    

    相关文章

      网友评论

        本文标题:爬虫——Requests库简单入门

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