实际上,它是scrapy的提取数据中的scrapy教程示例。当我在Windows cmd中输入命令时,一切顺利,直到scrapy shell的样本:
scrapy shell 'http://quotes.toscrape.com/page/1/'
我有一个像
这样的例外twisted.internet.error.DNSLookupError: DNS lookup failed: address "'http:" not found: [Errno 11001] getaddrinfo failed.
线程Thread-1中的异常(很可能在解释器关闭期间引发):
详细说明如下:
[
我搜索了stackoverflow
,发现类似question的类似问题
一个答案是尝试另一个终端,我尝试了Pycharm的终端,但它失败了同样的例外。
PS:我在Windows和Python 2.7.12,Anaconda 4.0.0(64位)上工作
我对scrapy很新,所以感谢任何帮助,谢谢。
答案 0 :(得分:10)
嗯,它可能与引用有关,我试图使用"
来封装网址并且它可以工作,我不知道这个命令在不同的操作系统中是否不同,因为原始教程的命令代码使用{ {1}}包含网址。
我也在scrapy上发布了这个问题,正如@kmike所说,它适用于其他操作系统上的'
,如(MAC和Linux或Unix)(github)
答案 1 :(得分:2)
对于发现此问题的人来说,本地.html文件的错误相同,我发现我必须在文件名前加上当前文件夹,而不仅仅是提供文件名。
使用
scrapy shell local_file.html
导致错误
twisted.internet.error.DNSLookupError:DNS查找失败:地址' local_file.htm'找不到:[Errno 8]提供nodename或servname,或者不知道。
然而,使用
scrapy shell ./local_file.html
启动shell并加载文件。
虽然文件路径的格式是 specified in the docs,但我没有意识到它是必需的(我假设我不需要提供./
本地文件)但文档确实提供了示例。
shell
也适用于本地文件。如果您想要使用网页的本地副本,这可能很方便。 shell了解本地文件的以下语法:<强> UNIX风格的强>
scrapy shell ./path/to/file.html
scrapy shell ../other/path/to/file.html
scrapy shell /absolute/path/to/file.html
文件URI
scrapy shell file:///absolute/path/to/file.html
答案 2 :(得分:1)
我遇到了同样的问题,删除了网址周围的单引号。我在windows上,python 3.6