我遇到了一个我正在编程的蜘蛛问题。我试图递归地从我大学的网站上删除课程,但我对Rule
和LinkExtractor
有很大的麻烦。爬行蜘蛛不爬行规则问题
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spider import Spider
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from ..items import BotItem
class UlsterSpider(CrawlSpider):
name = "ulster"
allowed_domains = ["ulster.ac.uk"]
start_urls = (
'http://www.ulster.ac.uk/courses/course-finder?query=&f.Year_of_entry|E=2015/16&f.Type|D=Undergraduate',
)
rules = (
Rule(LinkExtractor(allow=("index\.php",)), callback="parse"),
Rule(LinkExtractor(restrict_xpaths='//div[@class="pagination"]'), follow=True),
)
def parse(self, response):
item = BotItem()
for title in response.xpath('//html'):
item['name'] = title.xpath('//*[@id="course_list"]/div/h2/a/text()').extract()
yield item
我的蜘蛛布局如下。在第16 - 18行是规则。我试图做的是按照课程下面的分页划出标题。但是,它不会遵循。如果有人能指引我朝着正确的方向发展,那将是一个很大的帮助。我试图使用SGML提取器复制示例,但它表示它已被弃用,不使用它。
免责声明
虽然这是一所大学的网站,这不是功课。这是为了好玩和学习。我真的很困难。
家庭作业问题在SO上完全可以接受,我们甚至有一个[tag:homework]标签,只要他们遵循[这里](http://stackoverflow.com/help/mcve)的指导方针。国际海事组织能够正确地提出有关SO的问题是一项非常有价值的技能,因为毕业后您很可能会回到这里,所以获得一点帮助没有问题(当然,您的教授可能会有不同的感觉)。 – IanAuld
你想用你的第一条规则捕捉什么?它似乎没有捕捉任何东西。 – tegancp