Python scrapy基礎教程(一)
歡迎加入學習交流QQ群:657341423
scrapy作為一個爬蟲框架,其功能是足夠強大的。
這一框架就像一條爬蟲流水線,有工作佇列、有下載器、有分配任務的引擎,有對爬取資料寫邏輯的地方、也有寫儲存處理資料的資料庫SQL的地方。對於scrapy而言,更多的時候是在配置scrapy。先要繼承一個spider寫爬蟲的主體,然後還要在setting裡寫配置,在pipeline裡寫資料庫。而且還要注意在主函式parse裡的返回值,返回item時是交給pipline做資料處理,返回Request回撥函式時是向爬取佇列註冊二級連結等等。這樣看scrapy使用時比requests要繁瑣很多,後者只需要呼叫一下requests類,然後配置一下成員變數就可以使用,但獲取到html後其他的事情就都得你自己處理,自己寫的程式碼還不是最好的。而scrapy在配置好後就可以很順暢的跑起來,還會自動處理很多東西,而且往往效率比自己造的輪子效率高。所以如果是寫個小爬蟲,用request就可以了,如果程式碼量級稍大一點,不想費心管理了,就可以用scrapy,當然也可以自己造輪子
直接上教程:
python 3.5,Windows7環境下
這是爬取百度知道的問題列表題目,然後寫入txt中。
新建專案:
scrapy startproject textsc
然後在spider資料夾下新建BaiSpider.py檔案
下面來簡單介紹一下各個檔案的作用:
scrapy.cfg:專案的配置檔案
textsc/:專案的Python模組,將會從這裡引用程式碼
textsc/items.py:專案的items檔案(用於爬取資料定義和例項化)
textsc/pipelines.py:專案的pipelines檔案,主要用於存寫資料(寫入資料庫等)
textsc/settings.py:專案的設定檔案
textsc/spiders/:儲存爬蟲的目錄(爬蟲的內容,如何爬蟲,取那些資料等)
1.items.py
其中紅色部分需要注意,TextscItem類名用於匯入spiders中引用
TitleName = scrapy.Field()自定義資料
2.BaiSpider.py
start_urls:可以設定多個url連結
from textsc.items import TextscItem:匯入items.py裡面的TextscItem類
item=TextscItem():例項化
item[‘TitleName’] = items:賦值
yield item:這個關鍵,如果沒有這個,item不會傳遞到pipelines.py裡。用return item也行
3.pipelines.py
註釋“Don’t……’”需要自行設定settings.py檔案
第二個紅色框為自行編寫的程式碼。open模式為a,這樣可以連續寫入兩個url的資料,如果用w,只能寫入最後一個url的資料。
執行結果:
相關文章
- Python scrapy基礎教程(三)Python
- Python scrapy基礎教程(二)Python
- scrapy和scrapy-redis有什麼區別?Python基礎教程RedisPython
- scrapy 基礎
- python 基礎之scrapy 原理練習Python
- Python基礎教程Python
- Python Django基礎教程(一)(入門)PythonDjango
- Python爬蟲之Scrapy學習(基礎篇)Python爬蟲
- python 教程_【python 基礎教程詳解】Python
- 一、Python複習教程(重點)- 基礎Python
- python基礎教程|菜鳥教程Python
- Python Numpy基礎教程Python
- Python基礎面試題30問!Python基礎教程Python面試題
- python-基礎教程-pprintPython
- 【莫煩】python基礎教程Python
- Python 基礎知識教程Python
- Python教程系列(一)—— Python基礎教程之第一個程式設計練習Python程式設計
- Scrapy基礎(二): 使用詳解
- Gurobi基礎教程(Python版)-系列教程2Python
- Kotlin教程(一)基礎Kotlin
- Kotlin基礎教程(一)Kotlin
- Python Flask基礎教程(入門)PythonFlask
- Python基礎教程01 Hello World!Python
- Python基礎教程03 - 序列 (sequence)Python
- Python基礎教程06 - 迴圈Python
- Python基礎教程07 - 函式Python函式
- Python基礎教程04 運算Python
- 《Python基礎教程》小小有感Python
- Python基礎教程.18214570Python
- Scrapy 教程
- python基礎教程(2)python的一些基本概念Python
- python基礎(一)Python
- Python基礎一Python
- python程式設計基礎教程 第一季Python程式設計
- Python 快速教程(基礎篇02):基礎資料型別Python資料型別
- (Python基礎教程之七)Python字串操作Python字串
- Python基礎教程該如何學習?Python
- 1、python機器學習基礎教程——簡述Python機器學習