继续创作,加速成长!这是我参加「掘金日新方案 4 月更文应战」的第28天,点击查看活动概况

前言

昨日,咱们这儿产生了地震,不过,没有太大的问题,我就想着能不能把近几年产生地震的信息,收集下来,咱们发现中国地震台网的官方微博会分布近几年产生地震的信息。咱们能够直接在这儿获取。

功能实现

咱们这儿直接恳求网页,发送恳求,获取内容,咱们代码内容如下:


url = 'https://weibo.com/ajax/statuses/mymblog?uid=2817059020&page=2&feature=0'  
res=requests.get(url)  
res.encoding = res.apparent_encoding  
print(res.text)

咱们这儿虽然返回了内容,但是,不是咱们想要的内容,阐明,咱们被反爬了,咱们看看这儿返回了什么内容吧。

wload(function () {
    try {
        var need_restore = "1" == "1"; // 是否走恢复身份流程。
        // 假如需要走恢复身份流程,测验从 cookie 获取用户身份。
        if (!need_restore || !Store.CookieHelper.get("SRF")) {
            // 若获取失败走创立访客流程。
            // 流程执行时间过长(超越 3s),则以为犯错。
            var error_timeout = window.setTimeout("error_back()", 5000);
            tid.get(function (tid, where, confidence) {
                // 取指纹顺利完成,清除犯错 timeout 。
                window.clearTimeout(error_timeout);
                incarnate(tid, where, confidence);
            });
        } else {
            // 用户身份存在,测验恢复用户身份。
            restore();
        }
    } catch (e) {
        // 犯错。
        error_back();
    }
});

咱们发现这儿,咱们少了一些参数,阐明晰这个网站对cookies做了验证,咱们加入cookies试试,在咱们把cookies传进去之后,就拿到了咱们想要的内容了。

【Python实战】Python采集地震信息

咱们会发现,这儿是json格局的数据,接下来,便是字典取值就能够了,咱们得到的内容如下。


lists = res.json()['data']['list']  
for list in lists:  
text_raw = list['text_raw']  
print(text_raw)

【Python实战】Python采集地震信息

常识拓宽

cookies是一种能够让网站服务器把少数数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。

Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个十分小的文本文件,它能够记录你的用户ID、暗码、浏览过的网页、逗留的时间等信息。 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就能够做出相应的动作,如在页面显现欢迎你的标语,或许让你不必输入ID、暗码就直接登录等等。

从本质上讲,它能够看作是你的身份证。 但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由供给它的服务器来读龋保存的信息片断以“名/值”对(name-value pairs)的方式储存,一个“名/值”对仅仅是一条命名的数据。 一个网站只能获得它放在你的电脑中的信息,它无法从其它的Cookies文件中获得信息,也无法得到你的电脑上的其它任何东西。

总结

咱们发现,咱们没有登录,获取的内容很少,咱们能够登录之后,把咱们的cookies传进去,就能够获取到更多的内容了。