我是 scrapy 新手,最近开始在 M1 MacBook Air 上使用它。我遇到了一个问题。
例如,当我尝试做这样的事情时:
scrapy shell bbc.com
它会返回我:MemoryError:无法为 ffi.callback() 分配写入+执行内存。您运行的系统可能会阻止这种情况发生。有关更多信息,请参阅 https://cffi.readthedocs.io/en/latest/using.html#callbacks
值得注意的是,如果我在 Windows 上执行完全相同的操作,则一切正常。另外,当我在 http://quotes.toscrape.com/ 等网站或 M1 Mac 上的 HTTP 网站上使用 scrapy shell 时,它也可以工作。似乎是 HTTPS 问题,但我真的不确定。
任何帮助将不胜感激。
conda uninstall --force cffi
pip install cffi
https://github.com/snowflakedb/snowflake-connector-python/issues/1205
您只需升级requests模块即可
pip3 install --upgrade requests
我已经为此苦苦挣扎了几个月。对我来说,这似乎是 pyopenssl 的问题。我还没找到解决办法。
如果您尝试使用
http
网站(而不是 https
),您可能会发现它有效:scrapy shell http://httpforever.com
相关问题:https://github.com/pyca/pyopenssl/issues/873
其他对话:https://github.com/Azure/azure-cli/issues/16907
更新20211129:
HTTPS 网站(例如
scrapy shell https://www.bbc.com
)再次为我工作。我的环境:
如果你的scrapy版本是2.7.1,Python版本较低并且你使用anaconda,我建议你可以将Python版本更新到3.10,我就是这样解决问题的
我昨天也遇到这个问题了。我所做的是使用 python 3.10.4 创建一个虚拟环境。
conda create -n scrapyPy310 python==3.10.4
source activate scrapyPy310
pip install scrapy
scrapy shell www.bbc.com
我在使用
scrapy
安装conda install -c conda-forge scrapy
时也遇到了这个问题。
但是,当我使用
pip
安装它时,它对我有用。
conda create -n scrapy python=3.10
conda activate scrapy
pip install scrapy
scrapy shell https://bbc.com
这是我的包裹:
(scrapy) √ ~ % conda list
# packages in environment at /Users/x/anaconda3/envs/scrapy:
#
# Name Version Build Channel
attrs 22.1.0 pypi_0 pypi
automat 22.10.0 pypi_0 pypi
bzip2 1.0.8 h620ffc9_4
ca-certificates 2022.10.11 hca03da5_0
certifi 2022.9.24 py310hca03da5_0
cffi 1.15.1 pypi_0 pypi
charset-normalizer 2.1.1 pypi_0 pypi
constantly 15.1.0 pypi_0 pypi
cryptography 38.0.3 pypi_0 pypi
cssselect 1.2.0 pypi_0 pypi
filelock 3.8.0 pypi_0 pypi
hyperlink 21.0.0 pypi_0 pypi
idna 3.4 pypi_0 pypi
incremental 22.10.0 pypi_0 pypi
itemadapter 0.7.0 pypi_0 pypi
itemloaders 1.0.6 pypi_0 pypi
jmespath 1.0.1 pypi_0 pypi
libcxx 14.0.6 h848a8c0_0
libffi 3.4.2 hc377ac9_4
lxml 4.9.1 pypi_0 pypi
ncurses 6.3 h1a28f6b_3
openssl 1.1.1s h1a28f6b_0
packaging 21.3 pypi_0 pypi
parsel 1.7.0 pypi_0 pypi
pip 22.2.2 py310hca03da5_0
protego 0.2.1 pypi_0 pypi
pyasn1 0.4.8 pypi_0 pypi
pyasn1-modules 0.2.8 pypi_0 pypi
pycparser 2.21 pypi_0 pypi
pydispatcher 2.0.6 pypi_0 pypi
pyopenssl 22.1.0 pypi_0 pypi
pyparsing 3.0.9 pypi_0 pypi
python 3.10.6 hbdb9e5c_1
queuelib 1.6.2 pypi_0 pypi
readline 8.2 h1a28f6b_0
requests 2.28.1 pypi_0 pypi
requests-file 1.5.1 pypi_0 pypi
scrapy 2.7.1 pypi_0 pypi
service-identity 21.1.0 pypi_0 pypi
setuptools 65.5.0 py310hca03da5_0
six 1.16.0 pypi_0 pypi
sqlite 3.39.3 h1058600_0
tk 8.6.12 hb8d0fd4_0
tldextract 3.4.0 pypi_0 pypi
twisted 22.10.0 pypi_0 pypi
typing-extensions 4.4.0 pypi_0 pypi
tzdata 2022f h04d1e81_0
urllib3 1.26.12 pypi_0 pypi
w3lib 2.0.1 pypi_0 pypi
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.6 h1a28f6b_0
zlib 1.2.13 h5a0b063_0
zope-interface 5.5.1 pypi_0 pypi
在conda环境下安装cffi
conda install cffi