zoukankan      html  css  js  c++  java
  • Scrapy见面第五天

    这算是我第一次使用框架吧,说来羞愧。


    此前用Request带上cookie实现、(略微)完好了QQ空间的爬虫(传送门),接下来想实现分布式去爬。

    事实上仅仅要能实现待爬QQ队列的共享,分布式的主要问题也就攻克了。可是认为这样实现的爬虫项目有点“不正规”,所以想用Scrapy框架和Redis数据库来整顿现有爬虫。

    无奈公司里也没什么人指点。全凭一人摸爬滚打,过程有点痛苦。但自信仅仅要敢啃。还是能够拿下的。不成问题。
    然后就动手了。


    (忽略安装过程,预计是曾经用其它模块的时候已经吐血吐够了,环境都配好了,居然直接用 pip install scrapy 就成功了)

    第一步、当然是百度。看看传说中的“正规军”是什么样子的。高速了解了一下Scrapy工作机制,以及大家在使用scrapy的时候关注的点很多其它在哪里。然而看的都是似懂非懂,。然而并不重要,我仅仅须要和它碰个面即可。
    第二步、搜GitHub。找代码。搜了十几个demo,高速看了一下scrapy的代码结构。
    第三步、从各种平台搜索和Scrapy有关的东西。特别是大家对它的看法。主要途径:新浪微博、知乎、推酷、Google。


    第四步、调试、执行从GitHub上download下来的demo,大约了解scrapy详细的执行机制。
    第五步、是时候静下心来啃Scrapy的官方文档了,受益良多。


    第六步、糗事百科作靶子,模仿demo实战练习。再功能延生。
    第七步、即现在。第五天。



    事实上遇到的问题还是挺多的,基本的原因是对Scrapy了解不够深入。

    想要入门Scrapyeasy,可是想要单枪匹马高速入门,就非常须要看重怎么走了


    我是想着先实现简单的Scrapy爬虫。再用Redis实现分布式。在此之后再进行功能拓展,比如Cookie登录,比如爬虫数据的添加,比如异常处理、性能优化等等。整体的思路是先纵向深入,再横向逐个拓展。

    计划虽是这样,但终归还是没忍住花了一天时间动手实现了一下QQ空间和新浪微博的Scrapy爬虫。自增苦恼。只是有所收获。
    首先是QQ空间。我之前是用Request的session带上Cookie去打开js的请求,返回来的是js文件,里面包括我所须要的信息。

    直接请求js文件的优点是数据量小。数据流通和数据处理的花销会小非常多(反正我的小本本一个小时能抓17万条说说)。

    而现在。我用Scrapy带上Cookie却返回403(已带表头),我试着打开空间主页的URL。返回的是HTML文件,这非常正常,没有JS文件。但为什么打开JS的请求却报错403了呢?这个问题暂先放着。事实上空间更蛋疼的问题还没解决呢——Cookie。普通的登录(比如知乎)是发送个表单即可了,但QQ空间的表单。年轻的我没有找到(预计要一点点调试看它的加密算法了,之前的爬虫我是用phantomjs模拟浏览器获取到的)。百度和Google也没有搜到结果。甚至爬QQ空间人就非常少。大伙对它没兴趣?
    QQ空间爬不成,我试一下微博。

    非常明显大伙对微博的兴趣就高非常多了,已经有加密算法和构造表单的方法了。并且我在查看Cookie的时候看到新浪的Cookie有效期是六天左右(未检验)(QQ空间的Cookie有效期在几十分钟到十几个钟不等)。假设是这种话我们就算手动输入Cookie那也没什么呀。

    只是微博另一个问题。JS载入。

    网上的说法是构造下载中间件。详细还有待解决。

    只是此时看到scrapy的那张架构图(例如以下)就第二种感觉了呀。最终对各个部分有一点认识了!只是假设用Redis实现分布式的话Pipeline和Scheduler之间是不是应该要有个数据流通呀?

    scrapy

    感觉当前的难点很多其它的还是在右半边。获取数据。


    接下来。构造中间件。

    继续勘探。尽快熟悉Scrapy与分布式!



    转载请注明出处,谢谢!

    (原文链接:http://blog.csdn.net/bone_ace/article/details/50811004

  • 相关阅读:
    ASP.NET 2.0的页面缓存功能介绍
    我对针对接口编程的浅解
    接口和抽象类的区别
    面向接口编程到底有什么好处
    泛型编程是什么
    方法的重写、重载及隐藏
    基于事件的编程有什么好处
    Socket Remoting WebService对比
    技术讲座:.NET委托、事件及应用兼谈软件项目开发
    ny589 糖果
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7308825.html
Copyright © 2011-2022 走看看