scrapy 安装
安装python管理模块anaconda
下载位置
下载位置可以去清华镜像,不要问为什么?除非你可以忍受特别低的下载速度 点击进入下载页面 选择你需要的版本
环境变量
配置环境变量
将conda的安装目录配置到你的环境变量中路径有两个,我的安装位置为默认的,你可以根据自己的安装位置自行设置。但是目录要是这三个。
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin
使用conda命令安装scrapy
安装命令
命令如下:
conda install scrapy
一些常见的错误
测试scrapy命令:
# 输入命令scrapy
#如果报错就说明暂时不能用这个命令,你这时候需要解决一下报错的原因
#比如我的就报错:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\scrapy-script.py", line 6, in <module>
from scrapy.cmdline import execute
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\__init__.py", line 34, in <module>
from scrapy.spiders import Spider
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\spiders\__init__.py", line 10, in <module>
from scrapy.http import Request
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\http\__init__.py", line 11, in <module>
from scrapy.http.request.form import FormRequest
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\http\request\form.py", line 11, in <module>
import lxml.html
File "C:\ProgramData\Anaconda3\lib\site-packages\lxml\html\__init__.py", line 54, in <module>
from .. import etree
ImportError: DLL load failed: 找不到指定的模块。
这个原因是因为我的lxml版本不匹配
修复的时候使用如下命令
pip uninstall lxml
pip install lxml
# 其实也就是卸载重装即可
然后创建项目,其实你还会遇到一个问题
C:\work>scrapy startproject xxx
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\scrapy-script.py", line 10, in <module>
sys.exit(execute())
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\cmdline.py", line 149, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\crawler.py", line 254, in __init__
log_scrapy_info(self.settings)
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\utils\log.py", line 149, in log_scrapy_info
for name, version in scrapy_components_versions()
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\utils\versions.py", line 35, in scrapy_components_versions
("pyOpenSSL", _get_openssl_version()),
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\utils\versions.py", line 43, in _get_openssl_version
import OpenSSL
File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL\crypto.py", line 16, in <module>
from OpenSSL._util import (
File "C:\ProgramData\Anaconda3\lib\site-packages\OpenSSL\_util.py", line 6, in <module>
from cryptography.hazmat.bindings.openssl.binding import Binding
File "C:\ProgramData\Anaconda3\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 15, in <module>
from cryptography.hazmat.bindings._openssl import ffi, lib
这个时候你需要安装 cryptography 模块,,命令如下:
pip install -I cryptography
它可能又报错:
ERROR: jupyterlab-server 1.0.0 has requirement jsonschema>=3.0.1, but you'll have jsonschema 2.6.0 which is incompatible.
# 执行如下命令
pip install jsonschema==3.0.1
# 成功之后再次执行
pip install -I cryptography
这个时候创建项目 scrapy startporject xxx
就可以成功了。xxx指的是你的项目。
如果你想把它导入pycharm中,然后使用pycharm的依赖,那么它可能会报错winerror 127
这时候你需要使用Anaconda/DLLS中libssl-1_1-x64.dll 替换掉 anaconda3\Library\bin中的libssl-1_1-x64.dll。因为他们日期不一致。