Web Crawlers

53
WEB CRAWLING 115112004 Enes ÇAĞLAR

description

Slide contains information about web crawlers.

Transcript of Web Crawlers

Page 1: Web Crawlers

WEB CRAWLING 115112004 Enes ÇAĞLAR

Page 2: Web Crawlers

• Web crawler web’de bağlantı yapısını otomatik olarak inceleyip bu bağlantılardaki

herbir sayfayı otomatik olarak bir depolama alanına indiren programdır.

• Web crawling genelde bir arama motorunun veya web madenciliğinin ilk adımıdır.

Web Crawler

Page 3: Web Crawlers

• Universal Crawler

Universal crawler içeriğe bakmaksızın tüm sayfaları indirir.

• Topic Crawler

Sadece belirli başlıklardaki içerikleri indirir. Topic crawling de en önemli

zorluklardan bir tanesi o konuya ait sayfaların nasıl tanınacağıdır.

Web Crawler

Universal Crawler

Topic Crawler

Crawler

Page 4: Web Crawlers

• Online mod :

Online modda sayfalar indirilir indirilmez analiz edilir.

• Offline mod :

Offline modda ise sayfalar indirilip depolandıktan sonra analiz edilir.

Web Crawler

Online Mode Offline Mode

Crawler

Page 5: Web Crawlers

• İş zekası uygulamaları , şirketler kendi rakipleri hakkında bilgi toplamak için kullanırlar.

• Web sitelerini ve ilgili oldukları sayfaları gözlemleyerek yeni ilgili oldukları konularda

yeni bir bilgi geldiğinde bundan haberdar olurlar.

• Ayrıca kötü niyetli kullanımlar da vardır , özellikle mail adresi ve kişisel bilgilerin

toplanması gibi.

• En yaygın uygulaması ise arama motorlarıdır.

Web Crawler Uygulamaları

Page 6: Web Crawlers

Fig. 1.1 Basit bir web crawler

algoritmasının akış diagramı. Veri

operasyonları sol tarafta kesikli çizgi ile

gösterilmiştir.

Seed URLs

Start

Initialize Frontier

Dequeue URL from frontier

Fetch Page

Extract URLs and add to frontier

Store Page

Done?

Stop

Repository

Frontier

Yes

No

Web

Web Crawler Algorithm

Frontier : Ziyaret edilmemiş URL listesi.

Page 7: Web Crawlers

• Frontier first-in-first-out (FIFO) olarak implemente edilebilir. Bu durumda web crawler

Breadth-First crawler olarak adlandırılır.

• Yeni bulunan adresler listenin sonuna eklenir. Daha önce belirtildiği gibi frontier da

sadece ziyaret edilmemiş bağlantılar tutulur.

• Ziyaret edilmiş bağlantılar için crawl history dediğimiz bir yapı tutulur. Burada herbir link

için son erişilen zaman tutulur. Bir bağlantının crawl history e girebilmesi için daha

önceden ziyaret edilmiş olması gerekir.

• Bu liste ile ziyaret edilen bağlantıların tekrardan ziyaret edilmesi önlenmiş olur ayrıca

limitli bir boyutu olan frontier listesi de boş yere kullanılmamış olur.

• Crawl history genellikle bir hash table da tutulur. Bu da bir bağlantıyı aramada bize O(1)

işlem zamanı verir.

Breadth-First Crawlers

Page 8: Web Crawlers

• Eğer frontier listesi FIFO yerine öncelikli kuyruk yapısı şeklinde uygulandıysa bu

preferential crawler olarak adlandırılır.

• Burdaki amaç belirli başlıktaki konuların analiz edilmesidir.

• Preferential crawler da FIFO crawler a göre seed listesi seçimi çok daha önemlidir.

• Frontier listesine yeni bir bağlantı eklenirken belirli bir puan verilerek eklenir ve liste her

zaman sıralı şekilde tutulur.

• Bu durumda frontier listesine yeni bir bağlantı eklemenin asimptotik analizine

baktığımızda O(logF) olur , F burada frontier listesinin büyüklüğüdür.

Preferential Crawler

Page 9: Web Crawlers

• Web crawler sayfaları getirirken bir web istemci gibi davranır , sayfayı barındıran web

sunucuya bir HTTP request i gönderir ve dönen cevabı okur.

• İstemci büyük sayfaların okunurken veya yavaş cevap veren sunuculardan istekte

bulunurken zaman kaybetmemek için belli bir süre sonra bağlantı zaman aşımına

uğramalıdır.

• Genelde sayfa başına 10-100 KB den daha fazla indirilme olması engellenir.

• İstemci durum kodlarını ve yönlendirmeleri alabilmek için sunucudan dönen cevabın

başlık kısmını parse eder.

• Ayrıca burada bir bağlantı döngüsünü engellemek için de kontroller vardır , eğer bir

bağlantı birden fazla sayıda gelirse işlem durdurulur.

Implementation Issues

Fetching

Page 10: Web Crawlers

• Sayfalar indirildiğinde veya indirildikten sonra sayfadan belirli bilgilerin çıkarılması

işlemi başlar.

• Parsing işlemi basit örneğin sadece sayfadaki linkleri çıkarmak da olabilir daha

karmaşık işlemler de olabilir.

• Bu işlem, crawler örneğin bir arama motoruna destek veriyorsa indexleme

işlemidir.

• DOM (Document Object Model) HTML sayfasının etiket ağacı şeklinde gösterir.

• Fakat standart formatta olmayan bazı formatlar crawler lar parse işlemi için başka

bir sorundur , flash içerikli siteler , çok fazla javascript kullanan siteler buna

örnektir.

Implementation Issues

Parsing

Page 11: Web Crawlers

<html>

<head>

<title>Here comes the DOM</title>

</head>

<body>

<h2>Document Object Model</h2>

<img align="right" alt="dom pict" src="dom.png">

<p>

This is a simple

<code>HTML</code>

page to illustrate the

<a href="http://www.w3.org/DOM/">DOM</a>

</p>

</body>

</html>

Implementation Issues

Parsing

Page 12: Web Crawlers

Implementation Issues

Parsing

html

head

body

TitleHere comes the

DOM

h2

img

p

Document Object Model

This is a simple

HTML

Page to illustrate the

DOM

code

a

Page 13: Web Crawlers

<!DOCTYPE html>

<html>

<body>

<p>An absolute URL: <a href="http://www.somehost.com">Some link</a></p>

<p>A relative URL: <a href="tag_a.asp">The a tag</a></p>

</body>

</html>

<a> etiketlerini bul

<href> özniteliklerindeki değerleri al

Whitelist blacklist kontrolünü yap

Relative URL leri Absoulte URL lere çevir

Implementation Issues

Link Extraction and Canonicalization

Page 14: Web Crawlers

Implementation Issues

Link Extraction and Canonicalization

Description and transformation Example and canonical form

Default port number

Remove

http://cs.indiana.edu:80/

http://cs.indiana.edu/

Root directory

Add trailing slash

http://cs.indiana.edu

http://cs.indiana.edu/

Guessed directory*

Add trailing slash

http://cs.indiana.edu/People

http://cs.indiana.edu/People/

Fragment

Remove

http://cs.indiana.edu/faq.html#3

http://cs.indiana.edu/faq.html

Current or parent directory

Resolve path

http://cs.indiana.edu/a/./../b/

http://cs.indiana.edu/b/

Default filename*

Remove

http://cs.indiana.edu/index.html

http://cs.indiana.edu/

Needlessly encoded characters

Decode

http://cs.indiana.edu/%7Efil/

http://cs.indiana.edu/~fil/

Disallowed characters

Encode

http://cs.indiana.edu/My File.htm

http://cs.indiana.edu/My%20File.htm

Mixed/upper-case host names

Lower-case

http://CS.INDIANA.EDU/People/

http://cs.indiana.edu/People/

Page 15: Web Crawlers

Implementation Issues

Spider Traps

www.somehost.com

Product X

Product Y

www.somehost.com www.somehost.com/x

Product Y

Product X

www.somehost.com/x/y

Product X

Product Y

www.somehost.com/x/y/x

Bazı web sitelerinde dinamik linkler kullanılmaktadır örneğin bir e-ticaret sitesinde

X ürününün olduğu sayfada Y ürününe ait bir bağlantı olabilir , aynı şekilde Y ürününün

sayfasında da X ürününe başka bir bağlantı olabilir. Bu durumda yukarıda gösterildiği gibi

elimizde aynı sayfaya karşılık gelen farklı bağlantılar olabilir.

Page 16: Web Crawlers

Implementation Issues

Page Repository

• Sayfalar indirildikten sonra

depolama biriminde saklama

yöntemlerinden birtanesi herbir

sayfa için depolama biriminde bir

dosya tutulmasıdır.

• Dosya ismi olarak ise bağlantının

özeti (hash) alınarak çıkan sonuç

dosya ismi olarak kullanılabilir.

www.somehost.com/x

www.somehost.com/y

www.somehost.com/z

Hash Link Name

97d

a5d

52d

02cf

fcda

a30

eba1

efbe

969b

b3d

f6f5

76a

7ce3

668

7c84

a49

2f9b

d8ca

d4e

7456

2a8f

166e

efe

dd0

8a6

e34

b5b

7a

Page 17: Web Crawlers

Implementation Issues

Concurrency

• Crawler network, CPU ve disk olmak üzere üç kaynağı da kullanır.

• Sequential crawler bu durumda çok da verimli değildir çünkü her durumda üç kaynaktan

ikisi boştadır.

• Crawler ı hızlandırmak için en önemli geliştirmelerden birtanesi eşzamanlılıktır.

• Eş zamanlılık multi process (çoklu işlem) veya multi thread kullanılarak sağlanabilir.

• Herbir thread veya process bağımsız bir crawler gibi çalışır ve ortak erişim alanları

vardır , örneğin frontier listesi tüm process veya thread ler tarafından ortak olarak

kullanılmalıdır.

• Concurrent crawler da dikkat edilmesi gereken frontier listesine birden fazla thread

erişeceği için boş olup olmadığının kontrolü dikkatli yapılmalıdır.

Page 18: Web Crawlers

Implementation Issues

Concurrency

Seed URLs

Frontier

Frontier Manager

Dequeue URL from Frontier

Fetch Page

Extract URLs and Add To

Frontier

Store Page

Done?

Repo

sito

ry

Web

Thread Manager

.......

Thread/Process 1Thread/Process N

Page 19: Web Crawlers

Universal Crawlers

• Universal crawler lar yapısal olarak concurrent crawler dan farklıdır.

• Universal crawlerlar iki önemli faktörü karşılamalıdır;

Performans : Universal crawler lar saniyede binlerce sayfayı işleyebilme özelliğine

sahip olmalıdır.

Policy : Erişebildikleri kadar geniş web deki önemli sayfalara erişebilmelidirler.

• Universal crawler ların concurrent crawler dan en önemli farkı thread/process yerine

asynch soketler kullanılmasıdır.

• Bu soketler bağlantıyı bloklamazlar böylece prosesler yüzlerce bağlantıyı aynı anda açık

tutabilirler.

• Bu da etkin bant genişliği kullanımı sağlar.

Page 20: Web Crawlers

Universal Crawlers

Fetch Page

Frontier

Frontier Manager

Dequeue URL from Frontier

Extract URLs and Add To

Frontier

Store Page

Done?

Dis

k

Web

Thread Manager

Thread

Resolve DNS

Asynch Sockets

HTTP Get

Storage Switch

Dis

k

Network Switch

DNS

Cach

e

Page 21: Web Crawlers

Universal Crawlers

• Universal crawler frontier listesini paralel olarak tutabilir , herbir kuyruktaki bağlantılar bir

sunucuya denk gelir.

• Yükü birçok sunucuya dağıtarak birçok bağlantı aynı anda açık kalabilir ve böylece de

TCP/IP bağlantısını açıp kapatmaktan da kurtulunur. (TCP handshake)

• DNS bağlantılarında sıradan crawler lar herbir URL için farklı bir TCP bağlantısı açar,

universal crawler TCP yerine UDP protokolünü kullanır.

• Ayrıca DNS hafızada cache tutarak sorgulamalara hızlı bir şekilde cevap vermesi

sağlanır.

Page 22: Web Crawlers

Universal Crawlers

Coverage vs. Freshness vs. Importance

• Universal crawler lar bile web deki tüm sayfaları erişemez.

• Bu sebeple universal crawler lar daha önemli sayfalara odaklanırlar.

• Önemli sayfalar bağlantı popülerliği ölçülerek (PageRank) değerlendirilirler.

• Fakat web çok dinamik olduğundan dolayı indekslerin güncel olarak tutulabilmesi için

ziyaret edilen sayfalar yeniden ziyaret edilmelidir.

• Bu güncellik sağlanırken coverage ve freshness arasındaki bağlantı dikkate alınmalıdır.

Page 23: Web Crawlers

Focused Crawlers

Coverage vs. Freshness vs. Importance

• Tüm web içeriğini crawl etmek yerine sadece belirli kategorilerdeki sayfaları crawl etmek

isteyebilliriz.

• Focused crawler ların bir uygulaması Yahoo! Directory (dir.yahoo.com) veya Open

Directory Project (ODP, dmoz.org) gibi web taksonomilerini (sınıflandırma bilimi)

geliştirmektir.

• Bu uygulamalarda amaç etiketlenmiş örrnek sayfalardan bir metin sınıflandırıcı

oluşturmaktır.

• Daha sonra sınıflandırıcı bu kategorideki sayfaları crawler a crawl etmesi için rehberlik

eder.

• Sınıflandırıcıyı eğitmek için çeşitli kategorilerden örnek sayfalar çekilir.

• Sınıflandırma algoritması olarak Bayes sınıflandırıcısı kullanılabilir.

• Taksonomideki herbir kategori için P(c|p) olasılığını hesaplamak için bir Bayes

sınıflandırıcısı yapılandırılabilir. c -> Category p-> Crawled Page

• Bu durumda P(top|p) = 1 olur. top-> root page

Page 24: Web Crawlers

Focused Crawlers

Coverage vs. Freshness vs. Importance

• c* ile gösterilen alanlar focused crawler

ın ilgili oldukları kategorileri

göstermektedir.

• c1 sayfasından çıkarılan bağlantılar

frontier listesine eklenecektir.

• C1 sayfasının bağlı olduğu sayfalar

crawler ın ilgi alanındaki kategoriden

gelmektedir

• C2 sayfası ise frontier listesine

eklenmeyecektir.

• C2 sayfası ilgilenilen kategoride değildir.

C*

C2

C*

C’

top

C1

Page 25: Web Crawlers

Focused Crawlers

Coverage vs. Freshness vs. Importance

• c* ile gösterilen alanlar focused crawler

ın ilgili oldukları kategorileri

göstermektedir.

• c1 sayfasından çıkarılan bağlantılar

frontier listesine eklenecektir.

• C1 sayfasının bağlı olduğu sayfalar

crawler ın ilgi alanındaki kategoriden

gelmektedir

• C2 sayfası ise frontier listesine

eklenmeyecektir.

• C2 sayfası ilgilenilen kategoride değildir.

C*

C2

C*

C’

top

C1

Page 26: Web Crawlers

Crawler Design

Input

Page Downloading

Content Processing

Priority Assignment

Expansion

• Input : Başlangıç adresleri.

• Page Downloading : Bağlantılar indirilir ve bir kuyrukta

saklanır.

• Sequential (non-focused) crawler lar bu bağlantıları

FIFO mantığıyla indirir.

• Focused crawler lar ise bu bağlantıları belirli kriterlere

sırasına göre yeniden sıralayabilir veya linkleri

kuyruktan çıkarabilir.

• Content Processing : İndirilien sayfalar analiz edilir

ifade vektörlerine çevirilir

• Priority Assignment : İndirilen sayfalardan çıkarılan

bağlantılara öncelikleri belirlenerek kuyruğa aktarılır.

• Expansion : Bağlantılar genişleme için seçilir ve 2. ve

5. adımlar belirli bir kritere gelene kadar tekrar edilir.

Page 27: Web Crawlers

BEST FIRST CRAWLERS

Page 28: Web Crawlers

Best First Crawler

• Sayfalara indirme önceliklerini dokuman(d) ile konu (q) arasındaki benzerliği

hesaplayarak atar.

• Sayfa ve konu ifade vektörü şeklinde yazılır ve benzerlik VSM’ye (Vector Space Model)

göre hesaplanır. qi : Konu (topic) vektöründeki ifadelerin «tf -idf»

ağırlıkları

di : Sayfa vektöründeki ifadelerin «tf -idf»

ağırlıkları

• Bir döküman için ifade ağırlıkları aşağıdaki gibi hesaplanır:

Page 29: Web Crawlers

Semantic Crawler

• Semantik crawler da konuda geçen ifadelerle anlamsal olarak benzer ifadeler de

alınarak konu genişletilir.

• Birbirine benzer ifadeleri almak için «Wordnet» kullanılır.

• Konu ve aday sayfalar arasındaki benzerlik içerdikleri ifadelerin anlamsal benzerliği ile

hesaplanır.

• Bir p sayfasının önceliği aşağıdaki şekilde hesaplanır.

• K : Başlıktaki (konudaki) ifadeler

• L : Sayfa veya bağlantı metnindeki ifadeler

• Wk,Wl : İfade ağırlığı

• Sim(k,l) : k ve l nin anlamsal benzerliği

1 Eğer l k ifadesinin eşdeğer setinde varsa

Sim(k,l)

0 Diğer durumlarda

Page 30: Web Crawlers

VECTOR SPACE MODEL (VSM)

Page 31: Web Crawlers

• VSM ya da TVM (Term Vector Model) metin dökümanlarını vektör olarak ifade etmede kullanılır.

• Döküman ve sorgular vektör olarak ifade edilir ;

• dj = (w1,j,w2,j,....,wt,j)

• q = (w1,q,w2,q,....,wt,q)

• Herbir boyut farklı bir ifadeye (metinlerde ifade genellikle anahtar kelime) denk gelir.

• Eğer sorgu ifadesi dökümanda varsa vektördeki değeri 0’dan farklı bir değer alır.

• Bu değer birçok yöntemle hesaplanabilir.

• En çok kullanılan yöntem «tf-idf» tir.

• tf : term frequency

• İdf : inverse document frequency

Vector Space Model

Page 32: Web Crawlers

• td-idf kullanılarak d dökümanı için ağırlık vektörü hesaplanabilir.

wt,d = tf.idf wt,d = tft,d.

• tft,d : d dökümanında t ifadesinin frekansı

• |D| : Döküman setindeki toplam döküman sayısı

• |{d’ ∈ D | t ∈ d’}| : t ifadesini içeren toplam döküman sayısı

• : idf (inverse document frequency)

Vector Space Model

log|D|

|{d’ ∈ D | t ∈ d’}|

log|D|

|{d’ ∈ D | t ∈ d’}|

Page 33: Web Crawlers

• Örneğin d1 dökümanı ile q query si

arasındaki benzerlik cosine similarity

kullanılarak aşağıdaki gibi hesaplanır.

Vector Space Model

• Cosine Similarity:

• A.B = ||A||.||B||. cosα

Page 34: Web Crawlers

LEARNING CRAWLERS

Page 35: Web Crawlers

• HMM crawler sayfa içeriği ve ilgili sayfalar giden yol arasında bir ilişki kurarak çalışır.

• Eğitim seti oluşturmak için kullanıcı belli bir konudaki sayfaları bulur ve bu sayfaların

konu ile ilgili olup olmadığını etiketler.

• Daha sonra bu sayfalar k-means methodu kullanarak kümelenir.

• Konu ile ilgilli sayfalar C0 kümesini oluştururken , ilgili olmayan sayfalar C1 den Ck ya

kadar olan kümeleri oluşturur. HMM mo0deli de bu kümlerin üzerine kurulur.

• Herbir sayfa iki durum ile karaketerize edilir ; • Visible State : Sayfanın içeriğine göre ait olduğu kümeye denk gelen durum

• Hidden State : Sayfanın hedef sayfadan uzaklığı.

Learning Crawlers

Page 36: Web Crawlers

• Sayfanın ait olduğu kümenin önceliği sayfa crawl edildiğinde hedef sayfaya götürme olasaılığı ile hesaplanır.

Learning Crawlers

• L0 : Hedef veya seviye 0 sayfalar

• L1: Seviye 1 sayfalar(Hedeften 1

bağlantı uzaklıkta)

• L2: Seviye 2 sayfalar (Hedeften

2 bağlantı uzaklıkta)

• L3: Hedeften 3 bağlantı veya

daha uzak sayfalar

• C0: Küme 0

• C1: Küme 1

• C2: Küme 2

• Aynı clusterdaki sayfalar farklı seviyelere

• Aynı seviyedeki sayfalar farklı clusterlara ait olabilir.

• Sayfalar seviyelerine(hidden state) Li(i->seviye) ve ait oldukları clustera (cj) göre

• karakterize edilir. Bu da HMM ile modellenir.

Şekil : HMM Eğitim Seti

Page 37: Web Crawlers

• Bu modelde:

1- Initial probability Matrix(Başlangıç olasılık matrisi)

• π= {P(L0 , . . . ,Lstates -1)} states: number of hidden states

• P(Li) -> 1 zamanında i gizlivdurumunda olma olasılığı

• Bu olasılık her bir sayfaya eğitim setinde aynı gizli durumda olan sayfaların yüzdesi

atanarak tahmin edilir.

2- Transition Probabilities Matrix(Geçiş Olasılık Matrisi)

A = [aij] 0 <= i <= states

Aij -> Eğer t anında Li durumunda ise, t+1 durumunda Lj de olma olasılığı

Bu olasılık eğitim setinde Li’den Lj’ye geçişler sayılarak tahmin edilir ve bu değer Liden

olan tüm geçişlere göre normalize edilir.

Learning Crawlers

Page 38: Web Crawlers

Learning Crawlers

3- Emission Probabilities Matrix(Durum Olasılık Matrisi)

B = [bij] 0 <= i <= states 0 <= j < clusters (Toplam cluster sayısı)

• Bu olasılıklar Li durumunda Cj clusterına ait olan sayfaların, Li durumunda olan tüm

sayfalara normalize edilmesi ile bulunur.

• Tüm bu bileşenler (π ,A ve B) crawling başlamadan önce eğitim seti üzerinden

hesaplanır.

• Crawler sayfayı indirir, sayfaların vektörlerini (VSM kullanarak) çıkarır ve herbir sayfayı

K- nearest neighbours algoritmasını kullanarak kümelere atar.

• Sayfanın hedef sayfaya götürme olasılığı HMM parametreleri kullanılarak hesaplanır.

• Bu olasılık sayfada bulunan linkin ziyaret edilme önceliğine karşılık gelir.

• HMM model parametreleri kullanılarak bir sonraki adımdaki durum tahmini olarak

hesaplanır.

• Bu tahmini değeri hesaplamak için her bir ziyaret edilen sayfa a(Lj , t) , j= 0,1,...states

ile ilişkilendirilebilir.

• a(Lj , t) -> t zamanda Lj durumundaki sayfanın indirilme olasılığı

• Bu değer aşağıdaki gibi recursive olarak hesaplanabilir.

(1)

Page 39: Web Crawlers

Learning Crawlers

• Aij : A matrisindeki Li’den Lj durumuna geçiş olasılığı

• Bjct : B matrisindeki Lj durumunda n ct kümesinin çıkış olasılığı

• A(Lj , 0) : Bitiş adımı ise başlangıç olasılık matrisi π ‘den alınır.

• A(Lj , t+1) : bir sonraki adımda Lj durmunda olma olasılığı

• Bir sonraki adımda L0 (relevant page) durumunda olma olasılıgı HMM crawler

tarafından sayfalara atanan önceliktir.

• Eğer iki küme eşirt olasılık veriyor ise 1 ve 2 adımlarında daha yüksek olasılıkla

hedef sayfaları gösteren kümeye daha yüksek öncelik atanır. (HMM crawlerlarda

öncelik ataması)

• Bir başka yaklaşım olan «Proposed HMM Crawler»da ise sayfanın öncelik skoru

HMM crawler tarafından hesaplanan önceliklerin ortalaması ve centroid vektör (ilgili

sayfaların kümesini sayfanın ifade vektörü(term vektör) ) ile gösterir.

(2)

Page 40: Web Crawlers

Proposed Crawler Uygulama Adımları

• Giriş : Eğitim seti ,aday sayfa (p)

• Çıkış: p sayfasına atanan öncelik değeri

1. K-Means metodu ile eğitim setini kümeler.

2. Π,A,B matrisleri Centroid (Cr) hesaplanır.

3. P sayfasının bir clustera (Ct) K-Nearest Neighbours ile sınıflandırılması

4. Geçerli bir adım için gizli durum olasılıklarının hesaplanması.

5. Bir sonraki adım için gizli durum olasılıklarının hesaplanması

6. PriorityHMM(P) = a(L0 ,t+1) önceliğinin hesaplanması

7. Similarity (p,cr)-> sayfa içeriği ve ilgili sayfaların centroidi

arasındaki benzerliğin VSM kullanılarak hesaplanması

8. Sayfa önceliğinin hesaplanması

Page 41: Web Crawlers

CRAWLER ETİĞİ

Page 42: Web Crawlers

Crawler Etiği

• Crawlerlar özellikle web serverlar üzerinde genel olarak band genişliğini çok fazla

kullanırlar.

• Eğer bir crawler bir web sunucusuna çok hızlı bir şekilde istek gönderiyorsa (sn de 10

veya daha fazla) crawler lar bu durumda web kaynaklarını aşırı derecede kullanıyor

demektir.

• Eğer bu istekler bir web sunucusunun kullanıcılara (end user) cevap veremeyecek kadar

fazlaysa crawler tarafından servisin kısıtlanması atağı (denial of service attack) yapmış

oluruz.

• Bu durumun önüne geçmek için örneğin concurrent crawler da frontier yöneticisi

tarafından thread lere URL ataması yapıldığı sırada yapılabilir.

Web Sunucu Yükü

Page 43: Web Crawlers

Crawler Etiği

• Crawlerlar User-Agent http başlıklarını kullanarak crawl ettikleri web sayfalarının

yöneticilerine bilgi vermelidirler.

• Bu bilgi sadece crawler ın ismi ve versiyonu değil aynı zamanda crawler hakkında

detaylı bilgi veren bir bağlantı ve bir mail adresi de içermelidir.

• Bunun için genellikle crawler için bir web sayfası oluşturulur ve bu web sayfası http

başlığında gönderilir.

User-Agent HTTP Header

Page 44: Web Crawlers

Crawler Etiği

• Bu kural crawler lar ile ilgili bir de facto(genel kabul görmüş) kuralıdır.

• Bu standart web sunucu yöneticilerinin crawler a hangi sayfalara erişemeyeceği bilgisini

verebilmesini sağlar.

• Bu işlem robots.txt adı verilen web serverın kök dizininde bulunan

(http://www.somehost.com/robots.txt) isteğe bağlı bir dosyadır.

• Bu dosya ile farklı robotlara farklı kurallar verilebilir. (Bir önceki konuda robotların nasıl

tanınabildiğini anlatmıştık)

Robot (Exclusion) Dışlama Protokolü

User-agent: *

Disallow: /

robots.txt

Page 45: Web Crawlers

Crawler Etiği

• Bu kurallar web sunucuları etil olmayan

crawler lardan koruyamaz.

• Web sunucu robots.txt yi kullansa bile bu

crawler ları engelleyen birşey değildir

robots.txt nin olması isteğe bağlı olduğu

gibi bu crawler ın bu kurallara uyması da

isteğe bağlıdır.

• Fakat bu kuralları takip etmeyen crawler lar

birçok web sunucu tarafından IP bazlı

engellenmektedir.

• Fakat yine de crawler lar kendilerini bir

browser gibi tanıtarak (HTTP başlığında

user-agent alanında) işlemlerini

yapabilmektedir.

• Bu da bu tip crawler ların anlaşılabilmesini

güçleştirmektedir.

Bu Adımlar Yeterli Mi?

Page 46: Web Crawlers

MARKOV MODELİ

Page 47: Web Crawlers

• Durum uzayında bir durumdan diger bir duruma ugrayan sistem.

• Bir sonraki durum sadece o anki duruma bağlıdır, öncesinde olan olaylar bir sonraki

duruma geçişi etkilemez.

Markov Zinciri

• Markov zincirleri genelde yönlü graph kullanılarak

tanımlanır.

• Graphın kenarları bir durumdan diger duruma geçişteki

olasılığı gösterir.

Basit iki durumlu markov zinciri

Page 48: Web Crawlers

1 = A, 2 = B, 3 = C

Geçiş matrisi:

0.9 0.075 0.025

P= 0.15 0.8 0.05

0.25 0.25 0.5

• Bu durumda durumlar üzerindeki dağılım stochastic(olasılık) vektörü (tüm elemanların

toplamı 1 olan ve negatif elemanı olmayan) olarak yazılabilir ve x(n+1) = x(n) p olur.

• Yani bir n zamanında durum 2(B) ise 3 zaman sonra (n+3) dağılım:

x(n+3) = x(n+2) p x(n+2) = x(n+1) p x(n+1) = x(n) p

=(x(n+1) p)p = x(n+1) p2

0.9 0.075 0.025 3

= 0 1 0 0.15 0.8 0.05

0.25 0.25 0.5

= 0.375 0.56825 0.07425

Markov Zinciri

A B

C

Page 49: Web Crawlers

HIDDEN MARKOV MODELİ

Page 50: Web Crawlers

• Basit bir markov modelinde (örn:Markov zinciri), durum gözlemciye (visible) görünürdür.

• Bu durumda tek parametre durum geçiş olasılıklarıdır.

• HMM gözlemlenmeyen (Gizli-hidden) durumların da olduğu bir markov modelidir.

• HMM’de durum direkt olarak visible değildir; fakat duruma bağlı olan çıkış visible’dır.

• Her bir durum mümkün olan çıkışlar üzerinden bir olasılık dağılımına sahiptir.

• Bu sebeple HMM tarafından üretilen çıkışların sırası, bize durumların sırası hakkında bilgi verir.

Hidden Markov Model

Page 51: Web Crawlers

• X - Durumlar

• Y - Gözlemler

• a - Durum geçiş olasılıkları

• B - Çıkış olasılıkları

Hidden Markov Model

Page 52: Web Crawlers

• vazo state Bir odada 3 vazo var. (x1, x2 ,x3)

• Her bir vazoda bilinen 4 adet top var. (y1 ,y2, y3)

• Odalardaki vazolardan birinden rastgele bir top alınıyor. Ve bu top taşıma bandına

koyuluyor.

• Gözlemci topların sırasını görebiliyor fakat topların alındıgı vazoların sırasını

göremiyor.

• Vazonun seçilmesi için belirli bir prosedür var:

• n. Top için seçilen vazo rastgele bir sayıya ve (n-1). Top için seçilen vazoya bağlı.

• Bu markov prosesi gözlemlenemez. Sadece topların sırası gözlemlenebilir bu nedenle

HHMM olarak adlandırılır.

• Gözlemci vazoların yapısını ve örnek gelen 3 topun sırasını gözlemlediği halde

gözlemci 3. topun hangi vazodan alındığına emin olamaz fakar herbir vazodan gelme

olasılıklarını bulabilir.

Hidden Markov Model

Page 53: Web Crawlers

• Rainy,Sunny -> States

• Work,Shop,Clean -> Observations

• Output Probabilities

Rainy {walk : 0.1, shop:0.4 , clean :

0.5}

Sunny {walk : 0.6, shop:0.3 , clean :

0.1}

Hidden Markov Model