SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Web Crawler:Scrapy
鄭鈞輿
sly22320660@gmail.com
Outline
 什麼是網路爬蟲?
 什麼是Scrapy?
 實作流程
 參考資料
什麼是網路爬蟲?
 A Web crawler is an Internet bot that systematically
browses the World Wide Web, typically for the purpose
of Web indexing. A Web crawler may also be called a Web
spider.(From wiki)
什麼是Scrapy?
 Scrapy 是一個網路爬行的框架,主要是用來爬網站以及擷取網站上資料。
 open-source
 Scrapy 是由Python所編寫而成
Architecture overview
Installation
 需要安裝:
python2.7
pip
lxml
openSSL
 接著安裝Scrapy:
$ pip install scrapy
或者
$ easy_install scrapy
需要的基礎
 Python的基本語法 (因為Scrapy是由python所編寫而成)
 Xpath的基本語法 ( http://www.w3schools.com/XPath )
(因為Scrapy使用xpath語法來找網頁的tag)
若想檢測xpath的抓取的tag的正確性,可以使用Scrapy shell實際去跑一次檢查。
至於scrapy shell 是python的interpreter
執行:
$ scrapy shell “<url>”
Xpath基本語法
實作流程
1.創建新的scrapy project
2.定義要擷取的Items
3.寫spider去爬網站以及擷取資料
4.寫pipeline去儲存和處理得到的資料
1.創建新的scrapy project
$ scrapy startproject <project_name>
scrapy.cfg: the project configuration file.
tutorial/:the project’s python module.
items.py: the project’s items file.
pipelines.py : the project’s pipelines file.
setting.py : the project’s setting file.
spiders/ : a directory where you’ll later put your spiders.
2.定義Items
範例:
ps: written in items.py
3.寫一個spider (最簡單的一種)
Ps:在/spiders裡自行創建spider.py
3.寫一個spider(最常使用的一種)
4.寫pipeline去處理資料(有特殊需求再寫)
 首先,在setting.py加上
ITEM_PIPELINES = [‘<your_project_name>.pipelines.<your_pipeline_classname>']
ex: ITEM_PIPELINES = ['AppleNewsCrawler.pipelines.ApplenewscrawlerPipeline']
 接著在pipelines.py中輸入
執行Spider
若有執行第四個步驟:
$ scrapy crawl <spider_name> ex: $ scrapy crawl yahoo
若沒有執行第四個步驟:
$ scrapy crawl <spider_name> -o items.json -t json
ex: $ scrapy crawl yahoo –o items.json –t json
最後輸出的json檔存在/spiders/items.json
參考資料
 1.Scrapy at a glance (主要)
http://doc.scrapy.org/en/latest/intro/overview.html
 2. w3schools xpath教學
http://www.w3schools.com/XPath
 3. Ubuntu下安裝scrapy
http://blog.csdn.net/chenguolinblog/article/details/19569059

Weitere ähnliche Inhalte

Was ist angesagt?

Autorelease pool
Autorelease poolAutorelease pool
Autorelease pool
Michael Pan
 
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
Yang FaFa
 
Web scraping入門1
Web scraping入門1Web scraping入門1
Web scraping入門1
兆欽 丘
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
 

Was ist angesagt? (20)

Autorelease pool
Autorelease poolAutorelease pool
Autorelease pool
 
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
[Talk] 2013 06-02-hadoop整合應用-crawlzilla@hadoop q2
 
Elastic stack day-2
Elastic stack day-2Elastic stack day-2
Elastic stack day-2
 
Node js实践
Node js实践Node js实践
Node js实践
 
Communication with python_http_module
Communication with python_http_moduleCommunication with python_http_module
Communication with python_http_module
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CIContinuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹
 
Day17. Ktor Exposed - DSL 實作 #將聊天機器人收到的訊息,寫入Ktor的資料庫吧~
Day17. Ktor Exposed - DSL 實作 #將聊天機器人收到的訊息,寫入Ktor的資料庫吧~Day17. Ktor Exposed - DSL 實作 #將聊天機器人收到的訊息,寫入Ktor的資料庫吧~
Day17. Ktor Exposed - DSL 實作 #將聊天機器人收到的訊息,寫入Ktor的資料庫吧~
 
Day16. Ktor Exposed - DAO
Day16. Ktor Exposed - DAODay16. Ktor Exposed - DAO
Day16. Ktor Exposed - DAO
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
 
Tornado开发实践
Tornado开发实践Tornado开发实践
Tornado开发实践
 
Web scraping入門1
Web scraping入門1Web scraping入門1
Web scraping入門1
 
Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)Automate with Ansible basic (2/e)
Automate with Ansible basic (2/e)
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 

Andere mochten auch

Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2
kriszyp
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
Larry Cai
 

Andere mochten auch (13)

Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2Java Script Based Client Server Webapps 2
Java Script Based Client Server Webapps 2
 
Scrapy
ScrapyScrapy
Scrapy
 
XPath for web scraping
XPath for web scrapingXPath for web scraping
XPath for web scraping
 
電腦不只會幫你選土豆,還會幫你選新聞
電腦不只會幫你選土豆,還會幫你選新聞電腦不只會幫你選土豆,還會幫你選新聞
電腦不只會幫你選土豆,還會幫你選新聞
 
Introduction to Guzzle
Introduction to GuzzleIntroduction to Guzzle
Introduction to Guzzle
 
均一Gae甘苦談
均一Gae甘苦談均一Gae甘苦談
均一Gae甘苦談
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
Web backends development using Python
Web backends development using PythonWeb backends development using Python
Web backends development using Python
 
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
 
Visualising Data with Code
Visualising Data with CodeVisualising Data with Code
Visualising Data with Code
 
Web Scraping in Python with Scrapy
Web Scraping in Python with ScrapyWeb Scraping in Python with Scrapy
Web Scraping in Python with Scrapy
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 

Ähnlich wie Web crawler - Scrapy

99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet
Shi-Hwao Wang
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
Wei Sun
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
Wei Sun
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
Wei Sun
 
Py ladies 0928
Py ladies 0928Py ladies 0928
Py ladies 0928
Yen_CY
 

Ähnlich wie Web crawler - Scrapy (20)

蜘蛛
蜘蛛蜘蛛
蜘蛛
 
Python安全编码
Python安全编码Python安全编码
Python安全编码
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 
Python 爬蟲
Python 爬蟲 Python 爬蟲
Python 爬蟲
 
Python在移动社交平台中的应用
Python在移动社交平台中的应用Python在移动社交平台中的应用
Python在移动社交平台中的应用
 
自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)
自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)
自动化漏洞利用关键技术研究(Automatic Vulnerability Exploitation Technologies)
 
Kamigo reviews 20191127
Kamigo reviews 20191127Kamigo reviews 20191127
Kamigo reviews 20191127
 
99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
data science homework
data science homeworkdata science homework
data science homework
 
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
非同步Python網頁爬蟲實作&部署在Heroku
非同步Python網頁爬蟲實作&部署在Heroku非同步Python網頁爬蟲實作&部署在Heroku
非同步Python網頁爬蟲實作&部署在Heroku
 
Berserk js
Berserk jsBerserk js
Berserk js
 
Py ladies 0928
Py ladies 0928Py ladies 0928
Py ladies 0928
 
Py ladies 0928
Py ladies 0928Py ladies 0928
Py ladies 0928
 
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
 
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697 LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697
 

Kürzlich hochgeladen

法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 

Kürzlich hochgeladen (6)

法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 

Web crawler - Scrapy