scrapy爬虫和自写爬虫对比--爬jobbole文章

前几天写了一个爬虫,用来爬伯乐在线的python版块的文章。其实这个爬虫只是保存网页而已,因为伯乐在线的文章既有图片又有代码,爬主要部分的话排版很难看,不如直接把网页保存下来。
然后这两天就在看python的一个轻量级爬虫框架–scrapy,并尝试用scrapy写爬虫。一开始觉得毫无头绪,后来慢慢就觉得挺好使的。但是好使归好使,就是不知道性能如何?于是就用scrapy也写一个爬虫来爬伯乐在线的文章,然后做一个对比。

自己写的爬虫-jobbole.py

因为自己用写爬虫接触多线程的时候,看到贴吧的一个人写的爬虫用到的是multiprocessing.dummy.Pool,然后就去用了一下,发现这个Pool真好用,于是基本上我写的每个爬虫都会用到Pool。其用法是:

from multiprocessing.dummy import Pool
pool=Pool(10)#10代码线程数
#定义一个函数
def run(num):
    print num**2
num_list=[1,2,3,4,5,6,7,8,9,10]
pool.map(run,num_list) #运行
#关闭线程
pool.close()
pool.join()

上面的就是基本用法,简单高效。
然后这里写的爬虫也是用这种方法。

爬虫分两步:

  • 第一步:解析每一页如http://python.jobbole.com/all-posts/page/2/的网页,把文章的链接解析出来。
    这里写图片描述
  • 第二步:解析文章页(其实这里没有解析,因为是直接保存网页),并把内容保存为.html格式。

    详细代码如下:

import re
import requests as req
from multiprocessing.dummy import Pool
import time


class DownloadArticle():
  def __init__(self):
    self.url='http://python.jobbole.com/all-posts/page/'
    self.article_list=[]
    self.savepath='D:/python/jobbole/articles/'
    self.errorUrl={}

  def parseArticleUrl(self,page):
    global article_list
    url=self.url+str(page)
    s=req.get(url)
    #<a target="_blank&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值