在Scrapy中使用get_project_settings()时如何指示代理列表的路径

cig3rfwq  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(193)

我正在尝试从我的脚本运行我的蜘蛛。它在命令提示符下运行良好,如果我不使用代理,它在脚本中运行良好(除了我得到403,因为我没有使用代理)。
我已尝试更改文件路径,但没有成功。
在www.example.com中settings.py,我简单地使用

ROTATING_PROXY_LIST_PATH = 'proxylist'

这是我的scapy.cfg,我试着把'scraper'改为scraper.scraper,但是没有用。

[settings]
default = scraper.settings

[deploy]
#url = http://localhost:6800/
project = scraper

这是我的项目结构

  • 拉斯克拉珀
  • 刮板
  • 蜘蛛
    *init.py
  • Spider.py
    *init.py
  • items.py
  • middewares.py
  • pipelines.py
  • settings.py
  • 刮板
  • scrapy.cfg
  • 代理列表

我不认为包括蜘蛛是相关的,但这是我如何调用它(在同一个文件中)

if __name__ == '__main__':

    process = CrawlerProcess(get_project_settings())
    process.crawl('Acts', artist="eddiem")
    process.start()

为什么scrapy在通过get_project_settings()调用设置时找不到我的代理文件?

n8ghc7c1

n8ghc7c11#

您的scrapy.cfg需要移动到它的父目录。
根据记录。
虽然可以修改,但所有Scrapy项目在默认情况下都具有相同的文件结构,类似于:

scrapy.cfg
myproject/
    __init__.py
    items.py
    middlewares.py
    pipelines.py
    settings.py
    spiders/
        __init__.py
        spider1.py
        spider2.py
        ...

scrapy.cfg文件所在的目录称为项目根目录。该文件包含定义项目设置的Python模块的名称。下面是一个例子:

[settings]
default = myproject.settings

这意味着scrapy.cfg文件应该至少位于settings.py文件所在的项目目录/目录之上一个目录。

相关问题