Heim  >  Artikel  >  Backend-Entwicklung  >  Warum sollten Sie Python als Crawler verwenden?

Warum sollten Sie Python als Crawler verwenden?

尚
Original
2019-07-06 14:43:113779Durchsuche

Warum sollten Sie Python als Crawler verwenden?

Was ist ein Webcrawler?

Ein Webcrawler ist ein Programm, das automatisch Webseiten 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

Was nützen Crawler?

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

Warum sollten Sie Python als Crawler verwenden?

Welche Sprache sollte man zum Schreiben eines Crawlers verwenden?

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 kann die detaillierte Extraktion von Webinhalten erleichtern, aber die Effizienz ist oft nicht hoch. Ist C# für das gezielte Crawlen einer kleinen Anzahl von Websites geeignet? (Scheint eine Sprache zu sein, die Leute im Informationsmanagement bevorzugen)

Die Gründe für die Wahl von Python als Crawler:

Plattformübergreifend, bietet gute Unterstützung für Linux und Fenster.

Wissenschaftliches Rechnen, numerische Anpassung: Numpy, Scipy

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

Komplexes Netzwerk: Networkx-Statistiken: und R-Sprachschnittstelle: Rpy

Interaktives Terminal

Schnelle Entwicklung der Website

Ein einfacher Python-Crawler

import urllib
import urllib.request

def loadPage(url,filename):
    """
    作用:根据url发送请求,获取html数据;
    :param url:
    :return:
    """
    request=urllib.request.Request(url)
    html1= urllib.request.urlopen(request).read()
    return  html1.decode('utf-8')

def writePage(html,filename):
    """
    作用将html写入本地

    :param html: 服务器相应的文件内容
    :return:
    """
    with open(filename,'w') as f:
        f.write(html)
    print('-'*30)
def tiebaSpider(url,beginPage,endPage):
    """
    作用贴吧爬虫调度器,负责处理每一个页面url;
    :param url:
    :param beginPage:
    :param endPage:
    :return:
    """
    for page in range(beginPage,endPage+1):
        pn=(page - 1)*50
        fullurl=url+"&pn="+str(pn)
        print(fullurl)
        filename='第'+str(page)+'页.html'
        html= loadPage(url,filename)

        writePage(html,filename)



if __name__=="__main__":
    kw=input('请输入你要需要爬取的贴吧名:')
    beginPage=int(input('请输入起始页'))
    endPage=int(input('请输入结束页'))
    url='https://tieba.baidu.com/f?'
    kw1={'kw':kw}
    key = urllib.parse.urlencode(kw1)
    fullurl=url+key
    tiebaSpider(fullurl,beginPage,endPage)

Weitere technische Artikel zu Python finden Sie unter Spalte Python-Tutorial zum Lernen!

Das obige ist der detaillierte Inhalt vonWarum sollten Sie Python als Crawler verwenden?. 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