Scrapy:以下是正则表达式的链接

2024-04-24 03:50:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个德国论坛上抓取线索。http://www.musiker-board.de/

实际不同的子窗体位于http://www.musiker-board.de/forum

亚音阶:音乐人-board.de/forum/subformName在

实际的线程有这些地址:musiker-board.de/threads/threadname/线程名称在

我要跟踪所有子窗体的所有链接并提取其中的所有线程, 但是线程的URL将不再与起始URL匹配。在

但是如果我选择“音乐人”-董事会/“作为一个起始网址,它并不跟随所有子论坛的链接。在

代码如下:

allowed_domains = ["musiker-board.de"]
start_urls = ['http://www.musiker-board.de/forum/'
             ]
rules = (
         Rule(SgmlLinkExtractor(allow=[r'forum/\w+']), follow=True),
         Rule(SgmlLinkExtractor(allow=[r'threads/\w+']), callback='parse_item'),
         )

def parse_item(self, response):
    #extract items...

我该怎么做才能跟着所有的音乐人-board.de/forum/subform把所有的音乐家都抽出来-forum.de/threads/threadname论坛? 在


Tags: boardhttpurl音乐链接wwwdeforum
1条回答
网友
1楼 · 发布于 2024-04-24 03:50:02

以下代码(由您的代码片段生成)似乎可以正常工作:

# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class Scrapy1Spider(CrawlSpider):

    name = "musiker"
    allowed_domains = ["musiker-board.de"]
    start_urls = ['http://www.musiker-board.de/forum/'
             ]
    rules = (
        Rule(LinkExtractor(allow=[r'forum/\w+']), follow=True),
        Rule(LinkExtractor(allow=[r'threads/\w+']), callback='parse_item'),
    )

    def parse_item(self, response):
        self.logger.info('response.url=%s' % response.url)

至少有以下输出(被截断):

^{pr2}$

相关问题 更多 >