zoukankan      html  css  js  c++  java
  • 批量下载应用宝上的apk文件

    本文内容来源于网络,仅供学习和交流使用,不具有任何商业用途,如有侵权或者其他问题,请即时与我联系,我会第一时间处理。---Python逐梦者。

    如题:

     1 """
     2     下载应用宝上所有的apk文件
     3 """
     4 import os
     5 import random
     6 
     7 from selenium import webdriver
     8 import requests
     9 import parsel
    10 
    11 filePath = 'apkFiles\'
    12 
    13 if not os.path.exists(filePath):
    14     os.mkdir(filePath)
    15 
    16 # 请求头
    17 headers = {
    18     'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
    19 }
    20 url = 'https://sj.qxxq.com/myapp/category.htm?orgame=1' # 通过分析我们发现它是懒加载,调用selenium
    21 
    22 # 开始请求数据
    23 response = requests.get(url=url, headers=headers)
    24 # print(response.text)
    25 # 选择器
    26 selector = parsel.Selector(response.text)
    27 # 开始选取应用列表
    28 lis = selector.css('.main ul li')
    29 print(len(lis)) # 只有前40个
    30 # 开始读取名称和下载链接
    31 for li in lis:
    32     name = li.css('.app-info-desc a::text').get()
    33     downLoadTime = li.css('.app-info-desc .download::text').get()
    34     size = li.css('.app-info-desc .size::text').get()
    35     downLoadUrl = li.css('.app-info-desc .com-install-btn::attr(ex_url)').get()
    36     print(name, downLoadTime, size, downLoadUrl, sep='|')
    37 
    38     # 开始下载
    39     res = requests.get(url=downLoadUrl, headers=headers)
    40     time.sleep(random.randint(2, 10))
    41     with open(filePath + name + '.apk', mode='wb') as f:
    42         f.write(res.content)
    43         print(name + '-----下载完毕!')

    我没有下载完,部分截图如下:

     

    页面是懒加载,尝试用selenium加载全部页面:

     1 """
     2     下载应用宝上所有的apk文件
     3 """
     4 import os
     5 import random
     6 import time
     7 from selenium import webdriver
     8 import requests
     9 
    10 
    11 # 文件夹
    12 filePath = 'apkFiles\'
    13 if not os.path.exists(filePath):
    14     os.mkdir(filePath)
    15 
    16 headers = {
    17     'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36',
    18 }
    19 # 定义页面下滑函数
    20 def dropDown():
    21     for i in range(1, 10):
    22         j = i / 9
    23         js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f - 500' % j # 页面高度等于
    24         time.sleep(random.randint(2, 5)) # 随机休眠
    25         driver.execute_script(js)
    26 
    27 # 初始化浏览器
    28 driver = webdriver.Chrome()
    29 url = 'https://sj.qq.com/myapp/category.htm?orgame=1'
    30 driver.get(url) # 请求页面
    31 driver.implicitly_wait(10) # 全局等待10秒
    32 driver.maximize_window() # 最大化窗口
    33 dropDown() # 下滑
    34 
    35 # 获取列表
    36 lis = driver.find_elements_by_css_selector('.main ul li')
    37 print(lis, len(lis))
    38 # 开始循环列表
    39 for li in lis:
    40     # name = li.find_element_by_css_selector('.app-info-desc a').text # 名称
    41     name = li.find_element_by_css_selector('.app-info-desc .com-install-btn').get_attribute('appname') # 名称
    42     size = li.find_element_by_css_selector('.app-info-desc .size').text # 大小
    43     downLoadTime = li.find_element_by_css_selector('.app-info-desc .download').text # 下载次数
    44     downLoadUrl = li.find_element_by_css_selector('.app-info-desc .com-install-btn').get_attribute('ex_url') # 下载链接
    45     print(name, size, downLoadTime, downLoadUrl, sep='|')
    46 
    47     # 接下来用requests请求下载
    48     response = requests.get(url=downLoadUrl, headers=headers)
    49     time.sleep(random.randint(2, 5))
    50     with open(filePath + name + '.apk', mode='wb') as f:
    51         f.write(response.content)
    52         print(name + '==================下载完成======================')

    逐梦很累,坚持加油。 

  • 相关阅读:
    Mac ssh 免密码登录 Mac 或者 Linux
    windows系统下将nginx作为系统服务启动
    eclipse的Git忽略某些不需要提交的文件
    spring boot 日志介绍 以及 logback配置示例
    nginx for Windows
    Eclipse 中Git的使用及如何解决冲突
    jquery是如何封装的
    SpringMVC接收json对象
    JSP中使用JSTL,并且解决XSS安全问题
    timestamp Invalid default value
  • 原文地址:https://www.cnblogs.com/mafu/p/15526117.html
Copyright © 2011-2022 走看看