記錄踩過的坑-scrapy

目錄

import  win32 api- Import Error DLL load failed-%1 不是有效的 Win32 應用程序

ImportError No module named '_cffi_backend'

KeyError 'Spider not found ItcastItem'

No module named 'win32api'

write() argument must be str, not bytes

設置cl環境變量


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. 1. import win32api  
  2. 2. import win32con  
  3. 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,如果出現下圖,則配置成功……

實際路徑根據自己的安裝路徑有所不同。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章