scrapy是乙個為了爬取**資料,提取結構性資料而編寫的應用框架。 其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 也可以應用在獲取api所返回的資料(例如 amazon associates web services ) 或者通用的網路爬蟲。scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。
scrapy主要包括了以下元件:
scrapy執行流程大概如下:
引擎從排程器中取出乙個鏈結(url)用於接下來的抓取
爬蟲解析response
解析出實體(item),則交給實體管道進行進一步的處理
解析出的是鏈結(url),則把url交給排程器等待抓取
一、安裝
1、安裝wheel二、爬蟲舉例pip install wheel
2、安裝lxml
3、安裝pyopenssl
4、安裝twisted
5、安裝pywin32
6、安裝scrapy
pip install scrapy
入門篇:美劇天堂前100最新(
1、建立工程
1
scrapy startproject movie
2、建立爬蟲程式
1
2
cd movie
scrapy genspider meiju meijutt.com
3、自動建立目錄及檔案
4、檔案說明:
5、設定資料儲存模板
items.py
1
2
3
4
5
6
7
8
import scrapy
class
movieitem(scrapy.item):
# define the fields for your item here like:
# name = scrapy.field()
name = scrapy.field()
6、編寫爬蟲
meiju.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import scrapy
from
movie.items import movieitem
class
meijuspider(scrapy.spider):
name =
"meiju"
allowed_domains = [
"meijutt.com"
]
start_urls = [
''
]
def parse(self, response):
movies = response.xpath(
'//ul[@class="top-list fn-clear"]/li'
)
for
each_movie
in
movies:
item = movieitem()
item[
'name'
] = each_movie.xpath(
'./h5/a/@title'
).extract()[0]
yield item
7、設定配置檔案
settings.py增加如下內容
1
item_pipelines =
8、編寫資料處理指令碼
pipelines.py
1
2
3
4
class
moviepipeline(
object
):
def process_item(self, item, spider):
with open(
"my_meiju.txt"
,
'a'
)
as
fp:
fp.write(item[
'name'
].encode(
"utf8"
) +
'\n'
)
9、執行爬蟲
1
2
cd movie
scrapy crawl meiju --nolog
10、結果
php遞迴函式及簡單例項講解
遞迴函式即自呼叫函式,在函式體內部直接或者間接的自己呼叫自己,即函式的巢狀呼叫是函式本身。通常在此型別的函式提之中會附加乙個條件判斷敘述,以判斷是否需要執行遞迴呼叫,並且在特定的條件下終止函式的遞迴呼叫動作,把目前流程的主控權交回到上一層函式來執行。以此,當某個執行遞迴呼叫的函式沒有附加條件判斷敘述...
MPI入門例項講解
mpi hello.cpp include include mpi int main int argv,char argc mpi init argv,argc cout hello world 編譯 mpicxx o mpi hello mpi hello.cpp 執行 mpirun np 3 m...
spring框架講解及例項
spring是乙個開源框架,是為了解決企業應用程式開發。簡單來說,spring是乙個輕量級的控制反轉 ioc 和面向切面 aop 的容器框架。一 輕量 大小 完整的spring框架可以在乙個大小只有1mb多的jar檔案裡發布,開銷 微不足道 spring是非侵入式的 典型的 spring應用中的物件...