【问题标题】:How to crawl local HTML file with Scrapy如何使用 Scrapy 抓取本地 HTML 文件
【发布时间】:2023-04-10 15:19:01
【问题描述】:

我尝试使用以下代码爬取存储在桌面中的本地 HTML 文件,但在爬取过程之前遇到以下错误,例如“没有这样的文件或目录:'/robots.txt'”。

  • 是否可以在本地计算机(Mac)中抓取本地 HTML 文件?
  • 如果可能,我应该怎么做 设置“allowed_domains”和“start_urls”等参数?

[Scrapy 命令]

$ scrapy crawl test -o test01.csv

[爬虫蜘蛛]

class TestSpider(scrapy.Spider):
    name = 'test'
    allowed_domains = []
    start_urls = ['file:///Users/Name/Desktop/test/test.html']

[错误]

2018-11-16 01:57:52 [scrapy.core.engine] INFO: Spider opened
2018-11-16 01:57:52 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-11-16 01:57:52 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6024
2018-11-16 01:57:52 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET file:///robots.txt> (failed 1 times): [Errno 2] No such file or directory: '/robots.txt'
2018-11-16 01:57:56 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET file:///robots.txt> (failed 2 times): [Errno 2] No such file or directory: '/robots.txt'

【问题讨论】:

  • 嗨@Baka,我很高兴问题现已解决。仅供参考,我刚刚回滚了您对问题的最后一次编辑。原因:修复您的问题并使其成为“正确”版本会使未来的读者感到困惑,尤其是那些有类似问题并寻求帮助的人。
  • @starrify,我同意你的意见,你是对的。感谢您让我的问题变得有价值:-)

标签: python scrapy


【解决方案1】:

在本地使用它时,我从不指定allowed_domains。 尝试取出那行代码,看看它是否有效。

在您的错误中,它测试了您给它的“空”域。

【讨论】:

  • 谢谢,@japes。我根据您的建议进行了修改,但仍然遇到与以前相同的错误。请参阅上述问题中的更新代码。我完全删除了“allowed_domains”行。
  • 更新:感谢您的帮助,@japes!我根据您的建议进行了修改,然后代码按我的预期生成了一个 csv 文件:-D
  • 很高兴它成功了! :) 如果可能,您能否将其标记为已回答?
  • 糟糕,我的错误。我还是 SO 社区的新手。感谢您花时间注意到我 :-) 我在您的答案上打了勾!
【解决方案2】:

要解决“没有这样的文件或目录:'/robots.txt'”的错误,您可以转到 settings.py 文件并注释该行:

#ROBOTSTXT_OBEY = True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 2017-08-26
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多