Scrapy 抓取并跟踪 href 中的链接

Scrapy crawl and follow links within href

我对 scrapy 非常陌生。我需要从url的主页关注href到多个深度。再次在 href 链接内,我有多个 href。我需要关注这些 href,直到我到达我想要抓取的页面。 我页面的示例 html 是:

初始页

<div class="page-categories">
 <a class="menu"  href="/abc.html">
 <a class="menu"  href="/def.html">
</div>

里面abc.html

<div class="cell category" >
 <div class="cell-text category">
 <p class="t">
  <a id="cat-24887" href="fgh.html"/>
</p>
</div>

我需要从这个 fgh.html 页面抓取内容。 谁能建议我从哪里开始。我阅读了有关 Linkextractor 的信息,但找不到合适的参考资料作为开始。谢谢

据我所见,我可以这样说:

  • 产品类别的 URL 始终以 .kat
  • 结尾
  • 产品的 URL 包含 id_ 后跟一组数字

让我们使用这些信息来定义我们的蜘蛛 rules:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor


class CodeCheckspider(CrawlSpider):
    name = "code_check"

    allowed_domains = ["www.codecheck.info"]
    start_urls = ['http://www.codecheck.info/']

    rules = [
        Rule(LinkExtractor(allow=r'\.kat$'), follow=True),
        Rule(LinkExtractor(allow=r'/id_\d+/'), callback='parse_product'),
    ]

    def parse_product(self, response):
        title = response.xpath('//title/text()').extract()[0]
        print title

换句话说,我们要求蜘蛛跟踪每个类别 link 并在它抓取包含 id_ 的 link 时通知我们 - 这对我们来说意味着我们找到一个产品 - 在这种情况下,为了举例,我在控制台上打印页面标题。这应该给你一个很好的起点。