python - 使用 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,我意识到这是一个小众模块,但我做了功课。我已阅读文档并试图在其他地方寻求帮助。如果有机会作为菜鸟我至少能找到一个可以帮助我的人,我为什么不利用这个机会呢?即使模块有问题的信息也可以提供帮助。
解决方案
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\
推荐阅读
- android - 我想在 AlerDilog 中将 relativelayout 背景设置为透明
- ios - Swift - 如何使 JSONDecoder 正确解析类层次结构中的日期数组
- angular - Angular - 如何制作文件上传服务?
- scala - 对 multipart/form-data 进行 POST 调用时,Gatling 测试返回 504
- r - Shiny DT - 使用按钮在选定行之后选择行
- vim - 如何在vim中为特定文件名设置快捷方式?
- react-native - 在 React Native 中从数组缓冲区中获取 PDF
- python - 如何访问多级熊猫数据框中的特定值
- java - Spring Webflux - 是否可以启用/实现反应式推送(而不是拉)背压?
- asp.net-mvc - 如何在 linux 的 mvc 中手动安装引导程序?