scrapy爬行深度不起作用

时间:2015-06-05 12:35:12

标签: python scrapy scrapy-spider

我正在编写scrapy代码来抓取第一页和另一个给定网页的深度

不知怎的,我的抓取工具没有输入额外的深度。只需抓取给定的起始网址并结束其操作。

我添加了filter_links回调函数,但即使没有被调用,所以显然规则会被忽略。什么是可能的原因,我可以改变什么使其遵循规则

import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from crawlWeb.items import CrawlwebItem
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
class DmozSpider(CrawlSpider):
name = "premraj"
start_urls = [
    "http://www.broadcom.com",
    "http://www.qualcomm.com"
]
rules = [Rule(SgmlLinkExtractor(), callback='parse',process_links="process_links",follow=True)]
def parse(self, response):
    #print dir(response)
    #print dir(response)
    item=CrawlwebItem()

    item["html"]=response.body
    item["url"]=response.url
    yield item
def process_links(self,links):
    print links
    print "hey!!!!!!!!!!!!!!!!!!!!!"

1 个答案:

答案 0 :(得分:0)

CrawlSpider documentation中有一个警告框。它说:

  

编写爬网蜘蛛规则时,请避免使用parse作为回调   CrawlSpider使用parse方法本身来实现其逻辑。   因此,如果您覆盖解析方法,则爬行蜘蛛将不再存在   工作

您的代码可能无法按预期工作,因为您使用parse作为回调。