【问题标题】:Problem with using Python library - Pyotodom使用 Python 库的问题 - Pyotodom
【发布时间】:2018-09-19 04:35:40
【问题描述】:

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

这是代码的摘录:

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

我收到的错误消息:

Traceback(最近一次调用最后一次):

文件“.\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 行,运行中 输出=标准输出,标准错误=标准错误)

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

提前致谢!

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

【问题讨论】:

    标签: python python-3.x web-scraping


    【解决方案1】:

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

    您可以在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\
    

    【讨论】:

    • 好的,所以我现在似乎无法修复它,因为我是初学者。更换操作系统会有帮助吗?我应该使用哪个来代替 Windows?
    • @PiotrMenclewicz - Declaring environment variables 相当简单,但如果您不想处理这个问题,Linux 与 POSIX 兼容,因此请选择您喜欢的发行版。 MacOS X 也兼容 POSIX。
    猜你喜欢
    • 2010-09-18
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2022-01-12
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多