一. 写在前面的话
最近项目忙得差不多了,要开始准备毕业论文了,所以我想把一些国外论文的pdf,以及一些英语相关的新闻推送到我的pad上面,这样就不用到处找了,直接保存就行。当然不能光看论文啊,也要放松一下啊(说实话,纯英文的文章很枯燥)。然后就想到把微博热搜也顺便推送到我的邮箱里面,好了废话不多说了,代码敲起(
)
二. 抓取微博热搜首页
进入
热搜首页,只有10条阅读量最高的微博,我们就是要把标题和链接抓取,最后写成html的格式发给邮箱,让邮箱里面可以点击。如果你用Python的requests库去请求,你会发现返回的html里面body是空的,没错就是空的。这里会有一个bug,新浪并没有把网页的源码直接返回给你,而是把源码放到了<script>标签里,我猜他这么做也是为了防爬。我们看看倒数第二个<script>标签会发现里面几乎是一个字典数据,里面有一个html的key,我们只要将它取出来再去解析,基本就ok了。
具体的抓取规则见下:我已经写了注释,这里用的是requests和xpath,个人感觉xpath比较好用,最后我只用了标题和链接。