美文网首页Python3自学 爬虫实战
简单爬虫爬取微博数据(二)

简单爬虫爬取微博数据(二)

作者: 咖啡要加糖 | 来源:发表于2015-05-26 16:15 被阅读0次

昨天呢讲了如何通过一个最基本的爬虫来抓取单个页面上的数据,但这样我们肯定是不能满足的,比如我们想要抓取一个人的所有微博的数据,那怎么办呢?我们不能手动的去点击“下一页”,我们肯定需要程序来帮我们做这件事情,所以我们今天的重点就是如何通过程序实现自动的跳转页面爬取数据。

Step1

     首先要做的前期准备工作,其实是针对新浪微博的特点,由于新浪一定要登陆的用户才能点击下一页,不然只能看到第一页的内容,所以我们要模拟登陆。不过之前网上看到的其他模拟登陆的方法都太过复杂了,而且会随着某浪自己改登陆加密方法而改动,很是不方便,所以我们用cookie的方式来登陆。

      首先我们要找到自己在新浪微博的cookie,仍然是登陆手机版,然后在safari中点击检查元素,来检查cookie,查找到了weibo.cn的很多cookie,具体该用哪一个呢?这个...我的解决方法是都记下来传给浏览器,总有一个是有用的。

cookie

找到自己的cookie以后的方法就简单多了。首先我们要用一个dict把所有的cookie记录下来

headers = {'gsid_CTandWM':'your cookie'}

然后在发出请求中加入你的cookie

yield Request("http://weibo.cn/xiena",cookies=headers, callback=self.parse)

这样就可以成功登陆啦

一定要注意的是,要重写class的start_requests方法,这样才能自定义初始访问状态,不然默认的状态是不会提交cookie的。

Step2

接下来是我们的自动跳转部分,实现自动跳转用的也是request方法,具体实现,就是像上一章一样,用xpath找到要跳转的链接,首先要分析html文件

html文件

这次我们用的是娜姐的微博,可以看到这个地方的href属性就是我们需要找的跳转链接了,用上次的方法把它提取出来

item['ids'] = sel.xpath('form/div/a/@href').extract()

然后用request方法跳转,跳转的时候需要注意加上cookie,同时,item['ids']是一个list,所以要遍历它

for st in item['ids']:

       st = "http://weibo.cn"+st

       req = Request(url = st,cookies = headers, callback = self.parse)

       yield req

这样以后,再运行我们的小爬虫,就可以看到它不断的自动翻页爬取内容啦~

总结

爬虫小程序到现在已经初步可以运行了,那么下一步就应该考虑优化细节,比如调整爬虫的爬取时间间隔,避免被封账号之类的事情0.0,然后要考虑如何优化爬虫的性能,同时考虑同时运行多个爬虫,分布式工作的方法。

相关文章

  • 简单爬虫爬取微博数据(二)

    昨天呢讲了如何通过一个最基本的爬虫来抓取单个页面上的数据,但这样我们肯定是不能满足的,比如我们想要抓取一个人的所有...

  • 简单爬虫爬取微博数据(一)

    Step1 首先当然要配置好scrapy啦,配置好以后在终端里新建项目 scrapy startproject...

  • Python实践与学习索引

    爬虫小专栏—爬取广州二手房信息小专栏—爬虫模块化小专栏—广度优先爬虫小专栏—爬取某个用户的所有微博包简书—pandas

  • 【工具】echarts+kuno+分词

    数据: python爬虫:微博爬虫、借助'出书啦'爬微信知乎Java爬虫:Java微博爬虫 时间轴: JAVA时间...

  • scrapy爬取新浪微博分享(1)

    内容概要: 最近自己学习了一些爬虫,学习之余,写了一个新浪微博的爬虫。大规模爬数据没有试过,但是爬取几十万应该没有...

  • scrapy爬取新浪微博分享(2)

    内容概要: 最近自己学习了一些爬虫,学习之余,写了一个新浪微博的爬虫。大规模爬数据没有试过,但是爬取几十万应该没有...

  • scrapy爬取新浪微博分享(3)

    内容概要: 最近自己学习了一些爬虫,学习之余,写了一个新浪微博的爬虫。大规模爬数据没有试过,但是爬取几十万应该没有...

  • 爬虫

    复习 什么是爬虫?爬虫是用来做什么的?怎么使用爬虫爬取数据? 数据的重要性 数据的来源 爬取数据的规则【通用爬虫 ...

  • 简单python爬虫,爬取基金信息

    简单爬虫,爬取基金信息,使用了mysql数据库,代码如下:

  • Python 学习——每天写点小东西-6

    今天的爬虫是爬取某网站的所有链接,涉及到了MongoDB及其简单的操作,和多线程,虽然爬取的数据简单,但是能爬取这...

网友评论

    本文标题:简单爬虫爬取微博数据(二)

    本文链接:https://www.haomeiwen.com/subject/tlerqttx.html