在Scrapy中使用爬行蜘蛛类爬行

时间:2014-10-03 00:42:02

标签: python python-2.7 web-scraping scrapy web-crawler

我正在尝试递归抓取网页上的网址,然后解析这些网页以获取网页上的所有标记。我尝试使用scrapy爬行单个页面而不递归进入页面上的URL并且它工作正常,但是当我尝试更改我的代码以使其爬行整个站点时,它会抓取网站但最后会给出一个非常奇怪的错误。下面给出了蜘蛛的代码和错误,代码将域名列表作为文件中的参数进行爬行。

import scrapy
from tags.items import TagsItem
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor


class TagSpider(scrapy.Spider):
    name = "getTags"
    allowed_domains = []
    start_urls = []
    rules = (Rule(LinkExtractor(), callback='parse_tags', follow=True),)

    def __init__(self, filename=None):
        for line in open(filename, 'r').readlines():
            self.allowed_domains.append(line)
            self.start_urls.append('http://%s' % line)

    def parse_start_url(self,response):
        return self.parse_tags(response)

    def parse_tags(self, response):
        for sel in response.xpath('//*').re(r'</?\w+\s+[^>]*>'):
            item = TagsItem()
            item['tag'] = sel
            item['url'] = response.url
            print item

这是我得到的错误转储:

enter image description here

0 个答案:

没有答案