You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可从Python脚本调用的Scrapy爬虫示例:遍历全站URL并输出页面地址

可直接运行的Scrapy全站URL遍历脚本示例

你的代码存在几个关键问题导致无法运行,修正后的完整脚本如下,它会遍历目标网站的所有URL并输出每个访问页面的地址:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.crawler import CrawlerProcess

class MySpider(CrawlSpider):
    name = 'toscrape'
    allowed_domains = ['toscrape.com']
    start_urls = ['http://books.toscrape.com']

    # 定义规则:提取所有站内链接并跟进,交给parse_item方法处理
    rules = (
        Rule(LinkExtractor(allow=(), deny=()), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        # 输出当前访问的页面URL
        print(f"访问页面: {response.url}")
        # 这里可添加其他处理逻辑,比如提取页面内容

if __name__ == "__main__":
    # 初始化爬虫进程并启动
    process = CrawlerProcess()
    process.crawl(MySpider)
    process.start()

关键修正点说明:

  • 导入修正:替换错误的twisted.internet.process,使用Scrapy官方的CrawlerProcess启动爬虫
  • 链接遍历规则:添加Rule和LinkExtractor,这是CrawlSpider实现全站遍历的核心配置,会自动提取并跟进所有符合条件的站内链接
  • 方法逻辑修正:原代码直接调用类方法会报错,改为规范的类回调方法处理URL输出
  • 启动逻辑优化:用if __name__ == "__main__"包裹启动代码,符合Python脚本运行规范

运行脚本后,控制台会持续输出爬虫访问的每个页面URL,实现全站遍历需求。

内容的提问来源于stack exchange,提问作者AnkurS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:45:05