为了账号安全,请及时绑定邮箱和手机立即绑定

花两周时间用Python和Scrapy做个小爬虫

标签:
Java Python

两周前开始准备做爬虫。
以前有了解,Python有一个优秀的爬虫框架叫Scrapy,但是自己不怎么会Python,只在2015年的时候稍微看过一下,于是打算从头开始学习,先学Python,再了解爬虫的基础知识,再学习Scrapy,最终做出一个厉害的爬虫。这个爬虫应当具有以下的功能:

  • 防止被ban

  • 有效的错误处理

  • 重复数据的处理

到昨天,两周过去了,实现了以下的内容:

  • 了解了Python的基础知识,包括基本语法,数据结构,函数相关,以及面向对象,简单的正则;

  • 了解了爬虫的基本原理,简单用了下urllib2库;

  • 使用Scrapy自己写了一个爬虫,爬去了一整个网站,2万多个页面的数据;

下面来看看学习的情况。

第一周:

学习了Python的基础知识。看的是廖雪峰的Python2.7教程,由于Scrapy对于Python3的支持不够好,所以选择学习Python2.7,这个教程写得简单明了,对于有其他语言经验的选手,可以说学起来毫不费力。

第二周:

  • 先在 一个叫静觅的博客看了几篇关于爬虫的文章,这个博客里面也有几篇文章是讲从0开始学爬虫的;

  • 之后在知乎看到一个人答案里面说,Scrapy其实性能挺好的,自己撸了一圈爬虫后,发现还不如直接用Scrapy来得好,于是我决定直接开始整Scrapy;

  • 首先我想到的是去看Scrapy的中文文档,但是后来发现官方的版本已经是1.1.1了,中文文档只有0.24.1,并且照着文档做的时候发现有些地方不太对,没法出应该出现的效果,让我非常沮丧。痛定思痛之后,我决定直接撸最新的英文文档,静下心来,多一点耐心,我发现居然看起来没有什么问题,照着Tutorial敲了一遍;

  • 我想把数据存入MySQL,但是文档里面没有,于是看了下别人写的一个实例;
    之后,花了很长时间去配置MySQL,最终也没能成功,在安装MySQL-python的时候一直报错,谷歌百度了N圈也没有办法解决,于是换了个思路决定用MongoDB,后来发现MongoDB的配置极其简单:

from pymongo import MongoClientclass MongoDBPipeline(object):
    def __init__(self):
        connection = MongoClient(\'localhost\',27017)
        db = connection.ws
        self.ws = db.ipws
    def process_item(self, item, spider):
        self.ws.insert(dict(item))
        return item

最后照着
一个实例里面Spider的逻辑写了一个爬虫,并且将数据存入到MongoDB,代码如下:
items代码

import scrapyclass ipwsItem(scrapy.Item):
    title = scrapy.Field()
    url = scrapy.Field()
    num = scrapy.Field()
    content = scrapy.Field()

Spider的代码

Paste_Image.png

Pipeline的代码就是上面贴过的。

接下来的两周里面,应该做的事情就是:

  • 抓取ajax生成的数据

  • 错误处理

  • 重复数据处理

  • 防止被ban

再之后,可能研究下分布式爬虫。

作者:唐晓阳
链接:https://www.jianshu.com/p/5921af106659


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消