Heim  >  Artikel  >  Backend-Entwicklung  >  Warum Python als Crawler wählen?

Warum Python als Crawler wählen?

silencement
silencementOriginal
2019-06-27 11:03:082708Durchsuche

Warum Python als Crawler wählen?

Was ist ein Webcrawler?

Ein Webcrawler ist ein Programm, das Webseiten automatisch aus dem World Wide Web für Suchmaschinen herunterlädt und ein wichtiger Bestandteil von Suchmaschinen ist. Der herkömmliche Crawler beginnt mit der URL einer oder mehrerer anfänglicher Webseiten und ruft die URL auf der ursprünglichen Webseite ab. Während des Crawlens der Webseite extrahiert er kontinuierlich neue URLs von der aktuellen Seite und stellt sie in die Warteschlange, bis sie sicher sind Stoppbedingungen des Systems sind erfüllt

Wofür werden Crawler verwendet?

Fungiert als universeller Suchmaschinen-Websammler. (Google, Baidu) ist eine vertikale Suchmaschine: Online-Menschenverhalten, Online-Community-Evolution, Forschung zur menschlichen Dynamik, ökonometrische Soziologie, komplexe Netzwerke, Data Mining und andere Bereiche erfordern eine große Datenmenge Tool zum Sammeln relevanter Daten. Peeping, Hacking, Spamming...

Crawler ist der erste und einfachste Schritt für Suchmaschinen

Webseitensammlung

Indexerstellung

Abfragesortierung

Welche Sprache sollte zum Schreiben von Crawlern verwendet werden?

C, C++. Hocheffizient und schnell, geeignet für allgemeine Suchmaschinen zum Crawlen des gesamten Webs. Nachteile: Die Entwicklung ist langsam und das Schreiben ist stinkend und langwierig, zum Beispiel: Skynet-Suchquellcode.

Skriptsprache: Perl, Python, Java, Ruby. Einfache, leicht zu erlernende und gute Textverarbeitung können die detaillierte Extraktion von Webinhalten erleichtern, die Effizienz ist jedoch häufig nicht hoch. Geeignet für das gezielte Crawlen einer kleinen Anzahl von Websites

C#? (Scheint eine Sprache zu sein, die Leute im Informationsmanagement bevorzugen)

Warum haben Sie sich letztendlich für Python entschieden?

Plattformübergreifend, mit guter Unterstützung für Linux und Windows.

Wissenschaftliches Rechnen, numerische Anpassung: Numpy, Scipy

Visualisierung: 2d: Matplotlib (die Zeichnungen sind sehr schön), 3d: Mayavi2

Komplexes Netzwerk: Networkx

Statistik: Schnittstelle mit R-Sprache: Rpy

Interaktives Terminal

Schnelle Entwicklung von Websites

Ein einfacher Python-Crawler

 1 import urllib
 2 import urllib.request
 3 
 4 def loadPage(url,filename):
 5     """
 6     作用:根据url发送请求,获取html数据;
 7     :param url:
 8     :return:
 9     """
10     request=urllib.request.Request(url)
11     html1= urllib.request.urlopen(request).read()
12     return  html1.decode('utf-8')
13 
14 def writePage(html,filename):
15     """
16     作用将html写入本地
17 
18     :param html: 服务器相应的文件内容
19     :return:
20     """
21     with open(filename,'w') as f:
22         f.write(html)
23     print('-'*30)
24 def tiebaSpider(url,beginPage,endPage):
25     """
26     作用贴吧爬虫调度器,负责处理每一个页面url;
27     :param url:
28     :param beginPage:
29     :param endPage:
30     :return:
31     """
32     for page in range(beginPage,endPage+1):
33         pn=(page - 1)*50
34         fullurl=url+"&pn="+str(pn)
35         print(fullurl)
36         filename='第'+str(page)+'页.html'
37         html= loadPage(url,filename)
38 
39         writePage(html,filename)
40 
41 
42 
43 if __name__=="__main__":
44     kw=input('请输入你要需要爬取的贴吧名:')
45     beginPage=int(input('请输入起始页'))
46     endPage=int(input('请输入结束页'))
47     url='https://tieba.baidu.com/f?'
48     kw1={'kw':kw}
49     key = urllib.parse.urlencode(kw1)
50     fullurl=url+key
51     tiebaSpider(fullurl,beginPage,endPage)

Das obige ist der detaillierte Inhalt vonWarum Python als Crawler wählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn