likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 74

前言

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

功能实现

我们这里直接请求网页,发送请求,获取内容,我们代码内容如下:


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传进去,就可以获取到更多的内容了。

转载自:https://juejin.cn/post/7230366377705996348
评论
请登录