zoukankan      html  css  js  c++  java
  • 新浪微博爬取笔记(1)进度

    ############

    有关新浪微博wap模拟登陆、爬取的内容请看这一系列的其他博文

    ############

    选择了一个新浪微博社会网络分析的毕设题目,需要爬取数据。只有一点python基础,爬虫这里是从零开始学习。看了若干技术博文,加了几个群。下半年就要进计算机学院的实验室做研究生project了,觉得可以开始写自己的技术博客,那就从毕设开始起个头吧。

    学习路线基本是这样的:

    需要爬新浪微博的转发列表,weibo.com上的转发列表是动态加载的,于是选取了selenium的webdriver,同时了解到PhantomJS也可以,而且速度更快;

    在新版微博的模拟登陆上纠结了2个多礼拜,用别人的代码,基本看懂了流程,虽然依然不会手动POST之类(根本不理解);

    学会用firebug, httpfox观察cookie,get响应;

    别人的代码得到的loginUrl不能到登陆状态,以这篇文章(系列)为主http://www.cnblogs.com/houkai/p/3487816.html,又看了几篇其他的文章http://blog.csdn.net/springzfx/article/details/38435069,不得其解;

    =========================================

    决定爬wap端weibo.cn,虽然这时候weibo.com模拟登陆之前的代码得到的loginUrl突然能用了,但是考虑到新版微博的标签太复杂,还是准备爬weibo.cn。为了先测试爬取,就用webdriver定位(find_element_by_xpath)输入框手动登陆;

    刚才找到一篇weibo.cn爬取的文章,或许有用http://qinxuye.me/article/simulate-weibo-login-in-python/

    用webdriver速度比较慢,考虑到需要爬的量很多,之后准备用PhantomJS,或者urllib/urllib2;

    还不知道python的多线程怎么操作,考虑到爬取量大ip可能被封还需要加代理;

    =======update 15.4.15========================

    今天把http://qinxuye.me/article/simulate-weibo-login-in-python/的代码一行一行地看下来,因为是12年的文章,修改了要改的部分,虽然运行成功但有错误;

    学到了BeautifulSoup, lxml, urllib, urllib2, cookielib这些包;

    看了计算机网络的书,总算搞明白了应用层的http协议的报文传送过程、cookie的传送,其实这个应该最开始就解决;

    =======update 15.4.16==================================

     wap端登陆成功,加代理成功(加本省的代理,否则新浪认为异地登录会拒绝访问,代理会慢,在urllib2.open()里加timeout参数,我设置的是10);

    加多线程,看文章http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html

    =======update 15.4.17==================================

    加多线程, 代理不稳定,每次都要重新选择,一个线程加一个代理;

    试爬果壳网wap主页100页,每爬一页time.sleep(2)。 微博id, 转发数,时间。需要处理一个tag下如果有很多个字节,则需要循环取出;

    =======update 15.4.18==================================

    爬三个用户的微博列表各100页,条件筛选出需要爬转发列表的weibo id

    =======update 15.4.19==================================

    按照weibo id中每个爬转发列表,计算下时间,每页爬完设置time.sleep(1.5)。因为没有好用的代理,不能加多线程,这部分完成应该会到明天。

    =======update 15.4.23==================================

    事实上转发列表的爬取进行了4天。同一个ip,每个帐号可以爬3个小时左右,晚上爬2个小时左右就需要换另一个帐号。也可能限制的是请求数。今天开始爬取用户信息,完成这部分之后爬取的工作就全部完成了 :)


    注:

    (还没实验)wap端限制的应该不是ip地址,是每个帐号的请求数,所以可以多线程每个线程用不同的帐号登陆,这样爬的快一点。

  • 相关阅读:
    Flutter 常用组件
    Chrome扩展应用
    Git操作指南
    ispriter自动构建css-sprite
    Sublime text2插件
    几个实用的sublime text 2的快捷键
    javascript数据类型转换
    requireJs压缩合并路径问题
    机器学习集成学习原理
    sklearn实现决策树算法
  • 原文地址:https://www.cnblogs.com/manqing/p/4423542.html
Copyright © 2011-2022 走看看