首页 > 解决方案 > 使用 Python 库的问题 - Pyotodom

问题描述

我想用这个库从 otodom 中抓取数据。我已经阅读了文档,但是我被困在一个非常基本的水平上,试图进行基本的导入。我使用的代码直接取自文档。最重要的是,我尝试从 Github 启动 example.py,但我遇到了同样的错误。

这是代码的摘录:

import otodom, os, logging
from otodom.category import get_category
from otodom.offer import get_offer_information

我得到的错误信息:

回溯(最近一次通话最后):

文件“.\otodom_import.py”,第 2 行,在

从 otodom.category 导入 get_category

文件“C:\Users\Dom\Anaconda3\lib\site-packages\otodom\category.py”,第 9 行,在

从 otodom.utils 导入 get_response_for_url,get_url

文件“C:\Users\Dom\Anaconda3\lib\site-packages\otodom\utils.py”,第 14 行,在

从 scrapper_helpers.utils 导入缓存、normalize_text、key_sha1、get_random_user_agent

文件“C:\Users\Dom\Anaconda3\lib\site-packages\scrapper_helpers\utils.py”,第 22 行,在

MAX_FILENAME_LENGTH = subprocess.check_output("getconf NAME_MAX /", shell=True).strip()

文件“C:\Users\Dom\Anaconda3\lib\subprocess.py”,第 336 行,在 check_output **kwargs).stdout

文件“C:\Users\Dom\Anaconda3\lib\subprocess.py”,第 418 行,运行输出=stdout,stderr=stderr)

subprocess.CalledProcessError:命令“getconf NAME_MAX /”返回非零退出状态 1。

提前致谢!

编辑:不理解downvotes,我意识到这是一个小众模块,但我做了功课。我已阅读文档并试图在其他地方寻求帮助。如果有机会作为菜鸟我至少能找到一个可以帮助我的人,我为什么不利用这个机会呢?即使模块有问题的信息也可以提供帮助。

标签: pythonpython-3.xweb-scraping

解决方案


getconf依赖scrapper_helpers模块试图调用的 POSIX 命令在 Windows 上不可用。

您可以跟踪它C:\Users\Dom\Anaconda3\lib\site-packages\scrapper_helpers\utils.py并将第 22 行替换为:

MAX_FILENAME_LENGTH = 255

但是问题是,鉴于模块显然希望在与 POSIX 兼容的系统上运行,可能会弹出什么其他错误 - 例如,它将尝试/var/tmp/scrapper-helpers/用作其在 Windows 上也不可用的临时缓存路径(但 Python 将将其解释为<DRIVE_LETTER>:\var\tmp\scrapper-helpers并尝试创建它)。

或者,查看它的代码,您可能只需声明以下环境变量即可:

set MAX_FILENAME_LENGTH=255
set CACHE_DIR=%TEMP%\scapper-helpers\

推荐阅读