继续创作,加速成长!这是我参加「掘金日新方案 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传进去之后,就拿到了咱们想要的内容了。
咱们会发现,这儿是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传进去,就能够获取到更多的内容了。