【Python实战】Python采集地震信息
前言
昨天,我们这里发生了地震,不过,没有太大的问题,我就想着能不能把近几年发生地震的信息,收集下来,我们发现中国地震台网的官方微博会分布近几年发生地震的信息。我们可以直接在这里获取。
功能实现
我们这里直接请求网页,发送请求,获取内容,我们代码内容如下:
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传进去之后,就拿到了我们想要的内容了。
我们会发现,这里是json格式的数据,接下来,就是字典取值就可以了,我们得到的内容如下。
lists = res.json()['data']['list']
for list in lists:
text_raw = list['text_raw']
print(text_raw)
知识拓展
cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。
Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。 当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从本质上讲,它可以看作是你的身份证。 但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读龋保存的信息片断以“名/值”对(name-value pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。 一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。
总结
我们发现,我们没有登录,获取的内容很少,我们可以登录之后,把我们的cookies传进去,就可以获取到更多的内容了。
转载自:https://juejin.cn/post/7230366377705996348