Méthode Python pour explorer le lien de téléchargement de l'application

高洛峰
Libérer: 2017-02-24 15:07:58
original
2171 Les gens l'ont consulté

Le premier est le travail de préparation

Python 2.7.11 : Télécharger python

Pycharm : Télécharger Pycharm

où python2 et python3 est actuellement une version synchrone, j'utilise python2 comme environnement ici. Pycharm est un IDE Python relativement efficace, mais il nécessite un paiement.

Idée de base de la mise en œuvre

Tout d'abord, notre site Web cible : Android Market

Cliquez sur [Application] pour accéder à nos pages clés :

Méthode Python pour explorer le lien de téléchargement de lapplication

Après avoir accédé à l'interface de l'application, nous devons faire attention à trois endroits. La case rouge dans l'image ci-dessous indique :

<.>

Méthode Python pour explorer le lien de téléchargement de lapplication

Faites d'abord attention à l'URL dans la barre d'adresse, puis faites attention au bouton de téléchargement gratuit, puis faites attention aux options de changement de page en bas. En cliquant sur le bouton « Téléchargement gratuit », vous téléchargerez immédiatement l'application correspondante. Notre idée est donc d'obtenir le lien de téléchargement et de télécharger l'application directement.

Écrire un robot

Le premier point à résoudre : Comment obtenir le lien de téléchargement mentionné ci-dessus ? Ici, je dois présenter les principes de base de la façon dont les navigateurs affichent les pages Web. Pour faire simple, le navigateur est un outil similaire à un analyseur. Lorsqu'il obtient du HTML et d'autres codes, il analyse et restitue selon les règles correspondantes, afin que nous puissions voir la page.

J'utilise Google Chrome ici. Faites un clic droit sur la page et cliquez sur "Inspecter" pour voir le code HTML original de la page Web :

Méthode Python pour explorer le lien de téléchargement de lapplication

Regardez. Ne vous inquiétez pas si vous rencontrez des codes HTML éblouissants. L'élément de révision de Google Chrome a une petite fonction utile qui peut nous aider à localiser le code HTML correspondant au contrôle de page

Emplacement :

Méthode Python pour explorer le lien de téléchargement de lapplication

Comme le montre l'image ci-dessus, cliquez sur la petite flèche dans la case rectangulaire ci-dessus, cliquez sur la position correspondante sur la page, et le code HTML à droite sera automatiquement positionné et mis en surbrillance.

Ensuite nous localisons le code HTML correspondant au bouton de téléchargement :

Méthode Python pour explorer le lien de téléchargement de lapplication

Vous pouvez voir que dans le code correspondant au bouton, il y a un téléchargement correspondant lien : [/appdown/com.tecent.mm], plus le préfixe, le lien de téléchargement complet est

http://apk.hiapk.com/appdown/com.tecent.mm

Utilisez d'abord python. Il est très simple d'obtenir le HTML de la page entière, il suffit d'utiliser "

" et de renseigner l'URL correspondante. requests.get(url)

Méthode Python pour explorer le lien de téléchargement de lapplication

Ensuite, lorsque vous explorez les informations clés de la page, adoptez l'idée de "saisir d'abord les grandes, puis les petites". Vous pouvez voir qu'il y a 10 APPs sur une page, correspondant à 10 éléments dans le code HTML :

Méthode Python pour explorer le lien de téléchargement de lapplication

Et chaque balise li contient les attributs (nom) de l'APP respective . , lien de téléchargement, etc.). Donc dans un premier temps, nous extrayons ces 10 balises li :


def geteveryapp(self,source):
  everyapp = re.findall(&#39;(<li class="list_item".*?</li>)&#39;,source,re.S)
  #everyapp2 = re.findall(&#39;(<p class="button_bg button_1 right_mt">.*?</p>)&#39;,everyapp,re.S)
  return everyapp
Copier après la connexion


Une simple expression régulière est utilisée ici Knowledge

Extraire le lien de téléchargement dans la balise li :



def getinfo(self,eachclass):
  info = {}
  str1 = str(re.search(&#39;<a href="(.*?)">&#39;, eachclass).group(0))
  app_url = re.search(&#39;"(.*?)"&#39;, str1).group(1)
  appdown_url = app_url.replace(&#39;appinfo&#39;, &#39;appdown&#39;)
  info[&#39;app_url&#39;] = appdown_url
  print appdown_url
  return info
Copier après la connexion


Ce qu'il faut dire ensuite la difficulté est de tourner les pages. Après avoir cliqué sur le bouton tourner les pages ci-dessous, nous pouvons constater que la barre d'adresse a changé comme suit :

Méthode Python pour explorer le lien de téléchargement de lapplication

Méthode Python pour explorer le lien de téléchargement de lapplication

豁然开朗,我们可以在每次的请求中替换URL中对应的id值实现翻页。


def changepage(self,url,total_page):
  now_page = int(re.search(&#39;pi=(\d)&#39;, url).group(1))
  page_group = []
  for i in range(now_page,total_page+1):
   link = re.sub(&#39;pi=\d&#39;,&#39;pi=%s&#39;%i,url,re.S)
   page_group.append(link)
  return page_group
Copier après la connexion


爬虫效果

关键位置说完了,我们先看下最后爬虫的效果:

Méthode Python pour explorer le lien de téléchargement de lapplication

在TXT文件中保存结果如下:

Méthode Python pour explorer le lien de téléchargement de lapplication

直接复制进迅雷就可以批量高速下载了。

附上全部代码


#-*_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(&#39;pi=(\d)&#39;, url).group(1))
  page_group = []
  for i in range(now_page,total_page+1):
   link = re.sub(&#39;pi=\d&#39;,&#39;pi=%s&#39;%i,url,re.S)
   page_group.append(link)
  return page_group

 def geteveryapp(self,source):
  everyapp = re.findall('(
  • )',source,re.S) return everyapp def getinfo(self,eachclass): info = {} str1 = str(re.search(&#39;<a href="(.*?)">&#39;, eachclass).group(0)) app_url = re.search(&#39;"(.*?)"&#39;, str1).group(1) appdown_url = app_url.replace(&#39;appinfo&#39;, &#39;appdown&#39;) info[&#39;app_url&#39;] = appdown_url print appdown_url return info def saveinfo(self,classinfo): f = open('info.txt','a') str2 = "http://apk.hiapk.com" for each in classinfo: f.write(str2) f.writelines(each['app_url'] + '\n') f.close() if __name__ == '__main__': appinfo = [] url = 'http://apk.hiapk.com/apps/MediaAndVideo?sort=5&pi=1' appurl = spider() all_links = appurl.changepage(url, 5) for link in all_links: print u'正在处理页面' + link html = appurl.getsource(link) every_app = appurl.geteveryapp(html) for each in every_app: info = appurl.getinfo(each) appinfo.append(info) appurl.saveinfo(appinfo)
  • Copier après la connexion


    总结

    选取的目标网页相对结构清晰简单,这是一个比较基本的爬虫。代码写的比较乱请见谅,以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有问题大家可以留言交流。

    更多Méthode Python pour explorer le lien de téléchargement de lapplication相关文章请关注PHP中文网!

    Étiquettes associées:
    source:php.cn
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal