Last active
May 30, 2016 06:15
-
-
Save erenhatirnaz/bd31490b1a97890e69c4 to your computer and use it in GitHub Desktop.
Web Crawler Döngüsü
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for site in sites: # sites dizisinin içerisinden linkleri tek tek getiriyoruz | |
if not site in visited: # eğer link visited dizisinin içerisinde yok ise(yani daha önce ziyaret edilmemiş ise): | |
status, response = http.request(site) # http.request fonksiyonu ile linki GET methodu ile ziyaret ediyoruz ve sitenin bize verdiği status kodunu status; bize verdiği html içerikli cevabı ise response değişkenine atıyoruz. | |
print("Scanning "+site+": ") # ekrana taradığımız linki yazdırıyoruz | |
for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')): # sitenin bize verdiği response'un içerisinden tüm a taglarını çekiyoruz(yani tüm linkleri) | |
if link.has_attr('href'): # ve href attribute'u(özelliği) varmı diye kontrol ediyoruz yani <a href='burada bişey varsa'></a> | |
url = urljoin(site, link['href']) # linkler site içerisinden /dosyaismi.html şeklinde geldiği için bunun önüne domain eklemek gerekiyor bu nedenle urllib kütüphanesinin urljoin fonksiyonundan yararlanarak düzgün linkimizi oluşturuyoruz | |
fileExtension = os.path.splitext(url)[1] # url içerisinden dosya türünü alıyoruz | |
if not url in visited : # ve url daha önce bulunmamış ise | |
file.write(url+"\n") # links.txt dosyasına yazıyoruz ve | |
print("\t |-> Founded: "+url) # ekrana bulduğumuz linki yazdırıyoruz | |
if fileExtension in ['.html','.htm'] and not url in founded: # sonrasında dosya uzantısının html yada htm olup olmadığını ve daha önce bulunup bulunmadığını kontrol ediyoruz eğer html yada html ise ve daha önce bulunmamış ise: | |
sites.append(url) # sites dizisine ekliyoruz | |
founded.append(url) # ve founded dizisine ekliyoruz | |
visited.append(site) # son olarak linkimizi de ziyaret edilmiş linkler arasına ekliyoruz |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment