Python菜鸟笔记:实时备份指定对象最新微博(1)

[前言]

笔记就懒得排版啦。这篇文章也是边学边记录,想做个什么东西我心里是清楚的,但最后能不能做成我也没谱,没准我碰到难处就放弃了。

[想做个啥]

写一段代码,放到服务器运行。这段代码所做的事是每隔一分钟,去访问一次指定微博主页,监控一下有没有最新的微博更新,如果有,就把最新的那条微博保存下来。下次再访问,就拿已记录的最新微博和主页上的最新微博对比,如果主页有更新的,就再次保存...循环往复。

[为什么用python]

1、之前自学过易语言,中文编程的,做本地软件可以,但没法web开发,想学下正统的编程语言

2、正统语言有很多,但下面这张图跟我说:

[基础环境搭建]

python的安装(必选):百度“python 安装”,首页就有很多教程,有图文。如果想看视频安装过程,可以百度“廖雪峰 python”,他做了个网站专门讲python,第二节就是讲安装python,有视频。python安装很简单,点击运行exe安装包就可以了,跟装普通电脑软件一样,唯一注意一点是下图,箭头处注意勾选了就可以。

pycharm的安装与配置(可选):这个软件是个python编程的集成环境,方便我们写python代码的。没有它也一样写,但在它里面写会方便一些,至少省去我们在cmd里敲命令。可以理解它是个提供一条龙服务的东西。我觉得装一个吧,反正几分钟就搞定了。它的安装和配置,可以百度搜索关键词 “pycharm 安装 首次使用” 也是很多详细教程的。配置的关键点如下图,在于告诉这个软件:我写的程序,你用我刚刚安装的那个python.exe来解释/运行。

[预备知识点](不一定正确,只是我的个人理解)

浏览器上的网页是怎么显示的?

然后你浏览器会把这些代码翻译成下面这个页面:

【开工】======================

第一步:像浏览器一样访问网站,获取服务器返回的网页代码

python怎么访问网站呢,我也不知道,我就百度。搜索“python 访问网页”、“python http请求”看了几个网页,都说“requests”这个库很好用,比自带的库简单。一看到比自带的简单我就开心了,先装一个。一般介绍“requests”都会讲怎么安装的,因为安装非常简单。之前我们安装了python,现在只要打开cmd,输入“pip install requests”按回车就可以了,会自动安装。

看了下网上的教程,用这个库发起请求的用法也简单(requests的功能有很多,此时只用get访问的功能)。requests.get(‘’)括号里面填网址就可以了。OK,试一下访问糗事百科的一个网页。编写代码,点击运行,可以收到返回的网页源码。检查了一下,返回的代码,跟我们在网页上点鼠标右键,选择“查看网页源代码”看到的一模一样。成功!

那再试试微博的吧!

改成微博的链接运行,然后检查一下.....咦,怎么返回的代码,跟网页上查看源代码完全不一样呢?

我们发现,微博拒绝了给我们想要的东西。应该是它判定我们是一个机器人,给了另外一个要求登录的页面给我们。但其实我们在用浏览器访问微博时,就算没有登录帐号,也是可以访问指定人微博主页的。所以我们继续百度搜索“requests 模拟浏览器访问网站”或“模拟浏览器请求”等学习.....

通过查找网上资料学习,我们了解到:先正常用浏览器访问指定微博网页,抓包记录访问网站时,我们在无账号登录下的headers是什么;然后建立一个http会话,把原来记录的headers复制一份到代码中,这样微博就不会再阻拦你了。

谷歌浏览器抓包是在浏览页面按 “F12”快捷键,切到“network”选项卡,红色按钮则是记录状态,再点一下则变灰、停止记录。

抓到数据后,我们查看它的header,复制下来。我们如果全部复制下来,加入到我们的代码中,是最好的。但是其实我们只拿“cookie”(用户信息凭证)和“user-agent”(浏览器信息)就够了。好比我们去买对电池,有包装是更好,但其实没包装也一样用,电池本身最重要。如图:

我们把它写进代码....requests的get()方法本身就支持我们自定义headers的;我们在之前查requests教程里有讲。

改完运行一下,成功~

至此,我们能成功地通过代码获取到指定网页的源代码

下一次,我们解决:

怎么从源代码里,提取出我们想要的任何信息?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180816G1QVUJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券