Das erste ist die Vorbereitungsarbeit
Python 2.7.11: Python herunterladen
Pycharm: Pycharm herunterladen
wobei Python2 und Python3 ist derzeit eine synchrone Version, ich verwende hier Python2 als Umgebung. Pycharm ist eine relativ effiziente Python-IDE, die jedoch kostenpflichtig ist.
Grundidee der Umsetzung
Zunächst unsere Zielwebsite: Android Market
Klicken Sie auf [App] Um unsere Schlüsselseiten aufzurufen:
Nachdem wir zur Anwendungsoberfläche gesprungen sind, müssen wir auf drei Stellen achten. Das rote Kästchen im Bild unten zeigt an:
Achten Sie zuerst auf die URL in der Adressleiste, dann auf die Schaltfläche zum kostenlosen Download und dann auf die Optionen zum Umblättern unten. Wenn Sie auf die Schaltfläche „Kostenloser Download“ klicken, wird die entsprechende APP sofort heruntergeladen. Unsere Idee ist es also, den Click-to-Download-Link zu erhalten und die APP direkt herunterzuladen.
Einen Crawler schreiben
Der erste Punkt, der gelöst werden muss: Wie erhalten wir den oben genannten Download-Link? Hier muss ich die Grundprinzipien der Darstellung von Webseiten durch Browser vorstellen. Einfach ausgedrückt ist der Browser ein Tool, das einem Parser ähnelt. Wenn er HTML und andere Codes erhält, analysiert und rendert er sie gemäß den entsprechenden Regeln, sodass wir die Seite sehen können.
Ich verwende hier Google Chrome. Klicken Sie mit der rechten Maustaste auf die Seite und klicken Sie auf „Inspizieren“, um den ursprünglichen HTML-Code der Webseite anzuzeigen:
Schauen Machen Sie sich keine Sorgen, wenn Sie auf umwerfende HTML-Codes stoßen. Das Überprüfungselement von Google Chrome verfügt über eine nützliche kleine Funktion, die uns dabei helfen kann, den HTML-Code zu finden, der dem Seitensteuerelement entspricht.
Ort:
Wie im Bild oben gezeigt, klicken Sie auf den kleinen Pfeil im rechteckigen Feld oben und dann auf die entsprechende Position auf der Seite. Der HTML-Code auf der rechten Seite wird automatisch positioniert und hervorgehoben.
Als nächstes suchen wir den HTML-Code, der dem Download-Button entspricht:
Sie können sehen, dass es im Code, der dem Button entspricht, einen entsprechenden Download gibt Link: [/ appdown/com.tecent.mm], plus das Präfix, der vollständige Download-Link lautet http://apk.hiapk.com/appdown/com.tecent.mm
Verwenden Sie zuerst Python. Es ist sehr einfach, den HTML-Code der gesamten Seite abzurufen. Verwenden Sie einfach „requests.get(url)
“ und geben Sie die entsprechende URL ein.
Übernehmen Sie als Nächstes beim Crawlen der wichtigsten Informationen der Seite die Idee „Erfassen Sie zuerst die Großen, dann die Kleinen“. Sie können sehen, dass es 10 APPs auf einer Seite gibt, entsprechend 10 Elementen im HTML-Code:
Und jedes li-Tag enthält die Attribute (Name) der jeweiligen APP . , Download-Link usw.). Im ersten Schritt extrahieren wir also diese 10 Li-Tags:
def geteveryapp(self,source): everyapp = re.findall('(<li class="list_item".*?</li>)',source,re.S) #everyapp2 = re.findall('(<p class="button_bg button_1 right_mt">.*?</p>)',everyapp,re.S) return everyapp
Hier wird ein einfacher regulärer Ausdruck verwendet. Wissen
Extrahieren Sie den Download-Link im li-Tag:
def getinfo(self,eachclass): info = {} str1 = str(re.search('<a href="(.*?)">', eachclass).group(0)) app_url = re.search('"(.*?)"', str1).group(1) appdown_url = app_url.replace('appinfo', 'appdown') info['app_url'] = appdown_url print appdown_url return info
Was als nächstes gesagt werden muss Die Schwierigkeit besteht darin, Seiten umzublättern. Nachdem wir unten auf die Schaltfläche zum Umblättern geklickt haben, können wir sehen, dass sich die Adressleiste wie folgt geändert hat:
豁然开朗,我们可以在每次的请求中替换URL中对应的id值实现翻页。
def changepage(self,url,total_page): now_page = int(re.search('pi=(\d)', url).group(1)) page_group = [] for i in range(now_page,total_page+1): link = re.sub('pi=\d','pi=%s'%i,url,re.S) page_group.append(link) return page_group
爬虫效果
关键位置说完了,我们先看下最后爬虫的效果:
在TXT文件中保存结果如下:
直接复制进迅雷就可以批量高速下载了。
附上全部代码
#-*_coding:utf8-*- import requests import re import sys reload(sys) sys.setdefaultencoding("utf-8") class spider(object): def __init__(self): print u'开始爬取内容' def getsource(self,url): html = requests.get(url) return html.text def changepage(self,url,total_page): now_page = int(re.search('pi=(\d)', url).group(1)) page_group = [] for i in range(now_page,total_page+1): link = re.sub('pi=\d','pi=%s'%i,url,re.S) page_group.append(link) return page_group def geteveryapp(self,source): everyapp = re.findall('(
总结
选取的目标网页相对结构清晰简单,这是一个比较基本的爬虫。代码写的比较乱请见谅,以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有问题大家可以留言交流。
更多Python-Methode zum Crawlen des APP-Download-Links相关文章请关注PHP中文网!