標籤:

scrapy不支持python3嗎?有解決的辦法嗎?

剛開始學python,學的是3,求各位大神解答,謝謝啦


支持了,mac平台測試可用。

pip install scrapy

不過可能會和原本python2的版本出現衝突,可執行文件直接覆蓋。

建議先備份/usr/local/bin目錄下的scrapy的可執行文件,然後新生成的scrapy可執行文件命名為scrapy3

這樣scrapy命令執行的是python2的scrapy

scrapy3執行的是python3的scrapy


@足兆叉蟲 居然沒來回答,這不科學,是不是度廠最近太忙了

既然如此我替他來安利吧

binux/pyspider · GitHub


親測,在知乎用戶的幫助下解決成功安裝。python3.5版本,win10

總結:安裝scrapy之前,你一定要先裝需要的vs,twisted,lxml

1.

我首先是碰到了問題 「Unable to find vcvarsall.bat 」,通過@代代樹的回答解決Python3.4 用 pip 安裝lxml時出現 「Unable to find vcvarsall.bat 」?直接安裝VS2015社區版,它的下載鏈接http://pan.baidu.com/s/1eSueWLG,安裝里一定要勾選c++環境,和XXXfor python

2.

然後選擇先安裝twisted,通過@華天清的知乎專欄里提到的http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下載對應版本的twisted.whl

(快捷搜索:Ctrl+F)

安裝lxml,(深海魚的回答) Python Extension Packages for Windows 下載對應你版本的lxml.whl

,然後進入.whl所在的文件夾,執行命令即可完成這兩個的安裝

pip install 帶後綴的完整文件名

3.

最後安裝pip install scrapy成功。

別感謝了就跑了啊!( ?? .? ?? )


不用糾結了,2月4日發的1.10.0rc1已經支持Python 3了。

Release notes

Python 3 is Coming to Scrapy


6.5 更新,親測可以

pip install scrapy -i https://pypi.douban.com/simple/

已經支持了

pip install scrapy==1.1.0rc3


Python3 Scrapy 安裝方法 (一臉辛酸淚)


這麼一堆人推薦題主改用2我也是醉了。可以用requests庫做請求自己寫小爬蟲


來自主頁:

Frequently Asked Questions

No, but there are plans to support Python 3.3+. At the moment, Scrapy works with Python 2.7.

解決辦法:

1.不用scrapy

2.不用python 3

3.題主自己做一個port


能用3就用3,需求小就用Requests自己寫個爬,實在不行再用2,也算為社區作回貢獻。


scrapy的開發者已經把Python3的支持放在很重要的位置上了,谷歌編程之夏上有個項目就是移植scrapy到Python3.x上。

但要支持Python3還是有很多難關去攻克,主要來自scrapy依賴的一些庫twisted和mitmproxy等。

https://github.com/scrapy/scrapy/issues/263

we are working on it, it is a priority :)

Scrapy is the worst kind of project to port to Python 3 - it depends on Twisted (which is not ported to Python 3 yet - some subset of Twisted works though), and it works at outside world / python world boundary, so there are many questions about unicode. "Outer World" Scrapy works with is wild - there is no a well-defined encoding we can decode/encode data from/to. Encoding rules are sometimes crazy - e.g. browsers (which Scrapy aims to emulate) can use different charsets for different parts of a single URL, e.g. cp1251 for /path and utf-8 for GET parameter values. Ive ported a lot of code to Python 3 (including most of NLTK and tens of other Python packages), but still getting porting details wrong for Scrapy (e.g. #837 is wrong).

Some parts of Scrapy are already ported to Python 3. Were running tests for Python 3.3 on Travis to prevent regressions; ~240 tests pass in 3.3, out of ~1000. There is a GSoC project to port Scrapy to Python 3.x; I think we should make a good progress this summer.

There is also mitmproxy/mitmproxy · GitHub Scrapy dependency which doesnt have Python 3 support yet, but it is used only in tests.


//回答日期:2017/08/11

看了看提問時間,已經好一段時間了,不知道樓主成功了沒?

相信大家都知道python家族對windows是相對不友善的;明明在Linux上簡單pip install 的東西

在windows上就是各種不支持。

這幾天無聊給自己出個題目練練手,建置測試環境時在windows10上多番測試後成功將scrapy框架環境架設起來,我就來分享一下在windows建置過程吧。

環境:

  1. visual studio 2017
  2. python 3.6 64bit

首先scrapy這個框架依賴一些庫是在windows上不支援python3.6版本的,像是lxml(文字解析)、twisted(異步併發網路請求)、pillow(使用pipeline處理圖片會用到的圖片函式庫)等等

最理想的方式是拿這些庫的原碼自己去改、編譯一份出來。

但已經有好心的前人做過這些事,我們可以在這個網站上面下載別人(by Christoph Gohlke, Laboratory for Fluorescence Dynamics, University of California, Irvine.)已經編譯過的庫進行安裝

Python Extension Packages for Windows

在安裝scrapy之前需要將的其中三個庫:twisted 、lxml、pywin32(64bit也是叫pywin32)安裝完成,

先將符合你python版本依賴庫從上述的網站裡下載,如果不知道你的python版本,可以在命令行模式中輸入

python -V確認你的版本資訊。

然後回到該網站,以安裝lxml python3.6 64bit為例:

你會發現他的每一個庫都有許多版本,名字所代表的資訊經過本人猜測及測試過可能如下:

$(庫名)-$(庫版本號)-cp$(python版本)-cp$(python版本)m-win$(32bit或64bit).whl

以我們的環境為例 (64位元python3.6)下載 lxml-3.8.0-cp36-cp36m-win_amd64.whl

經過下載完成後開啟命令提示行介面

在該文件所在目錄下輸入:

pip3 install lxml-3.8.0-cp36-cp36m-win_amd64.whl

成功安裝,若沒有出現版本衝突,應該會是這樣子的

如此反覆後,將上述所需三個包下載完成。

安裝完成後如果直接使用pip3 install scrapy仍然會失敗

,錯誤訊息會提示找不到編譯器cl.exe

以我的環境為例visual studio 2017已經沒有了vcvarsall.bat這個幫助創建編譯環境的文件,取而代之的是這個developer command prompt for vs2017

請用系統管理員身分打開她,因為她會需要目錄寫入權限。

打開她後編譯器環境設定已經幫你設置好,這時候使用pip3 install scrapy就不會有任何問題了。

運行截圖


用pyspider,我覺得比scrapy。

PS:還沒受夠Django么?還用Scrapy!


自己改嘛,一點開源精神都沒有!


建議學一下2

1. 2和3差不多

2. 很多公司的環境裡面沒有3

3. 很多庫也不兼容3

但是不建議改scrapy,能問出這個問題明顯是沒有能力進這個大坑


系統:win10

python:3.5 amd64

安裝準備:到http://www.lfd.uci.edu/~gohlke/pythonlibs上下載安裝相應版本的Twisted和Lxml

執行命令:pip install Scrapy

運行報錯:ImportError: No module named win32api

解決方法:下載並安裝pywin32


Scrapy 官方文檔上有介紹:Installation guide

在主流操作系統 (包括 Windows)上, Scrapy1.1 已經支持 Py3,當然有一些更詳細的要求。

Though it』s possible to install Scrapy on Windows using pip, we recommend you to install Anaconda or Miniconda and use the package from the conda-forge channel, which will avoid most installation issues.
Once you』ve installed Anaconda or Miniconda, install Scrapy with:

conda install -c conda-forge scrapy


分頁阅读: 1 2