# Scrapy at a glance - Scrapy 中 requests 是被 **scheduled** and **process asynchronously** Scrapy 不需要等待前一個 request 被處理完成,即可同時送出另一個 request 且即使某些 request 發生異常仍可持續處理其他 request - 可透過 CSS selectors 和 Xpath expression 擷取 HTML/XMl file - 互動式 shell conosole (需要有 IPython) 方便 debug - 內建檔案輸出工具,可輸出多種格式 (JSON, CSV, XML) 以及儲存物件到後端 (FTP, S3, local filesystem) - 支援多種 encoding - 擴充性強,可搭配 API 與使用者自訂的模組使用 ( 透過 *signal* ) - 內建 extenstion 處理: - cookies and session handling - HTTP features - user-agent spoofing - 爬蟲深度限制 - 以及其他功能 # Installation guide #### Mac OS X - (Recommended) 不要使用 Mac OS X 內建的 python,請用 homebrew 安裝新版 python 3 - [Install homebrew](https://brew.sh/) - Update `Path` variable to state that homebrew packages should be used before system packages (若使用`.zhrc` 記得切換!) ``` bash echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc ``` - Reload `.bashrc` ``` bash source ~/.bashrc ``` - Install Python3 ``` bash brew install python3 ``` - 新版 Python 3 有內建 pip , 若沒有則更新 Python3 ``` bash brew update; brew upgrade python ``` - (Optional) 使用 [Virtialenv](https://docs.python-guide.org/dev/virtualenvs/) 當環境設定好後,則透過以下指令安裝 Scrapy: ``` bash pip3 install Scrapy ```