Scrapy簡單入門及例項講解

2021-09-07 18:04:07 字數 3560 閱讀 5299

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

classmovieitem(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

frommovie.items import movieitem

classmeijuspider(scrapy.spider):

name ="meiju"

allowed_domains = ["meijutt.com"]

start_urls = ['']

def parse(self, response):

movies = response.xpath('//ul[@class="top-list  fn-clear"]/li')

foreach_movieinmovies:

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

classmoviepipeline(object):

def process_item(self, item, spider):

with open("my_meiju.txt",'a')asfp:

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應用中的物件...