Scrapy SgmlLinkExtractor可以在允许中使用查询参数吗?

时间:2013-08-21 10:22:26

标签: web-crawler scrapy

任何人都可以向我解释为什么以下代码找不到任何链接?

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item

class CoursesSpider(CrawlSpider):
    name = "courses"
    allowed_domains = ["test.com"]
    start_urls = [
    "http://golfpiste.com/kentat/?p=seuralista"
    ]

    rules = (
    Rule(SgmlLinkExtractor(allow=r"kentat/esittely/\?lang=fi",unique=True),callback='parse_item', follow=True),
    )

def parse_item(self, response):
    self.log('Hi, this is an item page! %s' % response.url)
    item =  Item()
    return item

问题是allow = r“kentat / esittely / \?会找到要关注的链接,但是当我添加任何查询参数时,它找不到任何链接,即使kentat / esittely /?lang = fi链接肯定是那里。

所以我想知道SgmlLinkExtractor是否甚至可以在“允许”中使用查询参数,或者是否存在我做错的事情?

1 个答案:

答案 0 :(得分:1)

起始网址和链接提取程序规则错误。该规则应该是“kentat / esittely。\?seura =”。