h4353062@hotmail.com
鍾怡傑
 甚麼是 Scrapy ?
 如何安裝 ?
 Go! Go! 開始吧~
 實作第一個 Spider
 Demo
 Scrapy 是一個 Python 的框架,可以簡單用
Python 的程式碼寫網路蜘蛛,很方便的抓網頁上
的資料。
 Scrapy at a glance
 Frequently Asked Questions
 需要安裝
◦ Python 2.7
◦ Lxml
◦ OpenSSL
◦ pip or easy_install
 安裝 Scrapy
◦ pip install Scrapy
◦ or
◦ easy_install Scrapy
htt...
 Step
1. 編輯 /etc/apt/sources.list 加入這行
deb http://archive.scrapy.org/ubuntu precise main
2. 執行 curl –s
http://archive.scr...
http://doc.scrapy.org/en/latest/topics/architecture.html
 甚麼是 Scrapy Shell ?
◦ 一個 python 的直譯器,可以動態顯示執行的結果。
 執行 scrapy shell “<URL>”
 Ex:
scrapy shell "http://www.dmoz.org/Compu...
 讓我們試一下吧~
 觀察輸出的結果
In [1]: sel.xpath('//title')
In [2]: sel.xpath('//title').extract()
In [3]: sel.xpath('//title/text()...
 由輸出結果可知,Scrapy 使用 Xpath 語法抓網頁的資
訊,預設輸出使用 JSON 格式
 對於 Xpath 語法不熟的話,可參考以下網址:
1. http://www.w3schools.com/XPath/
2. http:/...
Scrapy Tutorial
 基本流程:
1. 建立一個新 Scrapy 專案
2. 定義你需要的 Item
3. 寫一個 Spider 抓資料
4. 寫一個 Item Pipeline 存抓到的資料
 scrapy startproject <Project_Name>
scrapy startproject tutorial
tutorial/
├── tutorial
│ ├── __init__.py
│ ├── items.py
...
 編輯 tutorial/tutorial/items.py
from scrapy.item import Item, Field
class DmozItem(Item):
title = Field()
link = Field()
d...
 編輯 tutorial/tutorial/spiders/dmoz_spider.py
from scrapy.spider import Spider
from scrapy.selector import Selector
from t...
 執行路徑必須在 tutorial/tutorial/spiders/
 抓到的資料儲存在 spiders/items.json
scrapy crawl dmoz -o items.json -t json
參考資料: Scrapy 0.22 documentation
快快樂樂學 Scrapy
Upcoming SlideShare
Loading in …5
×

快快樂樂學 Scrapy

1,121 views
954 views

Published on

Published in: Software, Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,121
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

快快樂樂學 Scrapy

  1. 1. h4353062@hotmail.com 鍾怡傑
  2. 2.  甚麼是 Scrapy ?  如何安裝 ?  Go! Go! 開始吧~  實作第一個 Spider  Demo
  3. 3.  Scrapy 是一個 Python 的框架,可以簡單用 Python 的程式碼寫網路蜘蛛,很方便的抓網頁上 的資料。  Scrapy at a glance  Frequently Asked Questions
  4. 4.  需要安裝 ◦ Python 2.7 ◦ Lxml ◦ OpenSSL ◦ pip or easy_install  安裝 Scrapy ◦ pip install Scrapy ◦ or ◦ easy_install Scrapy http://doc.scrapy.org/en/latest/intro/install.html
  5. 5.  Step 1. 編輯 /etc/apt/sources.list 加入這行 deb http://archive.scrapy.org/ubuntu precise main 2. 執行 curl –s http://archive.scrapy.org/ubuntu/archive.key | sudo apt-key add – 3. 升級 sudo apt-get update 4. 安裝 sudo apt-get install scrapy-<Version> 5. 測試執行 scrapy 指令 http://doc.scrapy.org/en/latest/topics/ubuntu.html
  6. 6. http://doc.scrapy.org/en/latest/topics/architecture.html
  7. 7.  甚麼是 Scrapy Shell ? ◦ 一個 python 的直譯器,可以動態顯示執行的結果。  執行 scrapy shell “<URL>”  Ex: scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
  8. 8.  讓我們試一下吧~  觀察輸出的結果 In [1]: sel.xpath('//title') In [2]: sel.xpath('//title').extract() In [3]: sel.xpath('//title/text()') In [4]: sel.xpath('//title/text()').extract() In [5]: sel.xpath('//title/text()').re('(w+):')
  9. 9.  由輸出結果可知,Scrapy 使用 Xpath 語法抓網頁的資 訊,預設輸出使用 JSON 格式  對於 Xpath 語法不熟的話,可參考以下網址: 1. http://www.w3schools.com/XPath/ 2. http://msdn.microsoft.com/zh- tw/library/ms256086(v=vs.110).aspx  練習資源 1. Xpath Tester 2. Chrome 瀏覽器的 Xpath Helper 套件
  10. 10. Scrapy Tutorial
  11. 11.  基本流程: 1. 建立一個新 Scrapy 專案 2. 定義你需要的 Item 3. 寫一個 Spider 抓資料 4. 寫一個 Item Pipeline 存抓到的資料
  12. 12.  scrapy startproject <Project_Name> scrapy startproject tutorial tutorial/ ├── tutorial │ ├── __init__.py │ ├── items.py │ ├── pipelines.py │ ├── settings.py │ └── spiders │ └── __init__.py └── scrapy.cfg
  13. 13.  編輯 tutorial/tutorial/items.py from scrapy.item import Item, Field class DmozItem(Item): title = Field() link = Field() desc = Field()
  14. 14.  編輯 tutorial/tutorial/spiders/dmoz_spider.py from scrapy.spider import Spider from scrapy.selector import Selector from tutorial.items import DmozItem class DmozSpider(Spider): name = “dmoz” allowed_domains = ["dmoz.org"] start_urls = [ “http://www.dmoz.org/Computers/Programming/Languages/Python/B "http://www.dmoz.org/Computers/Programming/Languages/Python/R ] def parse(self, response): sel = Selector(response) sites = sel.xpath('//ul/li') items = [] for site in sites: item = DmozItem() #之前 Step2 定義的 Item item['title'] = site.xpath('a/text()').extract() item['link'] = site.xpath('a/@href').extract() item['desc'] = site.xpath('text()').extract() items.append(item) return items
  15. 15.  執行路徑必須在 tutorial/tutorial/spiders/  抓到的資料儲存在 spiders/items.json scrapy crawl dmoz -o items.json -t json
  16. 16. 參考資料: Scrapy 0.22 documentation

×