---
# System prepended metadata

title: Scrapy at a glance

---

# 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
```

