目录
import win32 api- Import Error DLL load failed-%1 不是有效的 Win32 应用程序
ImportError No module named '_cffi_backend'
KeyError 'Spider not found ItcastItem'
write() argument must be str, not bytes
import win32 api- Import Error DLL load failed-%1 不是有效的 Win32 应用程序
系统位数问题,之前安装的是64位 win32 api。
安装32位win32 api即可。
ImportError No module named '_cffi_backend'
Cffi中由文件会被360认为是病毒而删掉。
方案
pip3 uninstall cffi
pip3 install cffi
然后在360弹窗说由病毒时找回文件,或者关掉360。
KeyError 'Spider not found ItcastItem'
Cmd执行
scrapy crawl ItcastItem
报错
KeyError: 'Spider not found: ItcastItem'
环境
Spider所在文件的文件名:ItcastItem
Spider的name:itcast
注意:scrapy crawl后面跟的是spider的name,而不是文件名。
No module named 'win32api'
原因是缺少win32,到 http://sourceforge.net/projects/pywin32/files/
找到对应的版本进行下载,直接安装即可
Python是没有自带访问windows系统API的库的,需要下载。库的名称叫pywin32,可以从网上直接下载。
以下链接地址可以下载:https://github.com/mhammond/pywin32/releases (下载适合你的Python版本)
运行以下代码如果出现ImportError: No module named win32api 或者出现 ImportError: No module named win32con,说明你的库没有安装好。
介绍这个库里面最重要的两个模块:win32api和win32con。win32api顾名思义,就是用python对win32的本地api进行了封装;win32con个人理解为win32constant,即win32的常量定义。
有了以上这两个模块我们就可以来一个win32版本的Python Helloworld了。
- 1. import win32api
- 2. import win32con
- 3. win32api.MessageBox(win32con.NULL, 'Python 你好!', '你好', win32con.MB_OK)
运行一下,看到消息框。
write() argument must be str, not bytes
ERROR: Spider error processing <GET http://www.itcast.cn/channel/teacher.shtml> (referer: None)
Traceback (most recent call last):
File "c:\users\cyang\appdata\local\programs\python\python37-32\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "D:\workspace\mySpider\mySpider\spiders\itcast.py", line 10, in parse
open(filename, 'w').write(response.body)
TypeError: write() argument must be str, not bytes
写文件时要用字符串,但从网页爬取的数据是字节,所以要把
open(filename, 'w').write(response.body)
改为
open(filename, 'wb').write(response.body)
即用字节的形式打开文件。
设置cl环境变量
前提:安装了Visual Studio C++相关的组件。
1. 在环境变量中Path 那一项中添加两个路径:E:\VS2017\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86
E:\VS2017\Common7\IDE
2. 在环境变量中新建一个LIB 变量,并添加三个路径(记得加分号):
E:\VS2017\VC\Tools\MSVC\14.10.25017\lib\x86; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\ucrt\x86;
3. 在环境变量中新建一个INCLUDE 变量,并添加两个路径(记得加分号):
E:\VS2017\VC\Tools\MSVC\14.10.25017\include; C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt;
4. 在E:\VS2017\VC\Auxiliary\Build 这个路径中点击vcvarall.bat 这个批处理程序。之后打开命令行,输入cl,如果出现下图,则配置成功……
实际路径根据自己的安装路径有所不同。