飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2611|回复: 6

[Python] 王者荣耀高清皮肤下载(Selenium)

[复制链接]
  • TA的每日心情
    开心
    2024-2-25 14:08
  • 签到天数: 1314 天

    [LV.10]以坛为家III

    发表于 2020-8-17 21:31:47 | 显示全部楼层 |阅读模式
    [ 本帖最后由 zyjsuper 于 2020-8-19 21:37 编辑 ]\n\n初学ChromeDriver +Selenium,分享下学习的小成果给坛友们,很多地方还需要优化,没有详细的做注释,大家凑合着看吧。

    chromedriver下载地址:
    墙外:https://sites.google.com/a/chromium.org/chromedriver/downloads
    墙内:http://npm.taobao.org/mirrors/chromedriver/
    https://chromedriver.storage.googleapis.com/index.html

    参考链接:
    https://blog.csdn.net/KaryKwok/article/details/80952084
    https://blog.csdn.net/weixin_36279318/article/details/79475388

    下载不易,把下载好的分享给大家:https://ws28.cn/f/39s6bzsqeug    过期时间: 1 天, 23:51:48


    [Python] 纯文本查看 复制代码
    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    
    '''
    @Author  :   zyjsuper
    @License :   (C) Copyright 2013-2020
    @Contact :   zyj_super@163.com
    @File    :   chromeSpider.py
    @Time    :   2020/8/16 19:46
    @Desc    :
    '''
    
    import time,os
    from selenium import webdriver
    import requests
    
    browser = webdriver.Chrome()
    headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
    username = os.getenv("USERNAME")
    savepath = "C:\\Users\\"+ username + "\\Desktop\\Photos\\"
    try:os.mkdir(savepath)
    except:pass
    
    browser.get("https://pvp.qq.com/web201605/wallpaper.shtml")
    time.sleep(2)
    page = 1
    while True:
        i = 1
        urls = browser.find_elements_by_xpath("//div[@class='p_hd']//li[@class='sProdImgDown sProdImgL7']/a")
        for url in urls:
            pic_name =  browser.find_element_by_xpath("//div[@class='p_hd']//div[" + str(i) + "]/h4").text
            real_url = url.get_attribute("href")
            path = savepath + str(page)
            try:os.mkdir(path)
            except:pass
            response = requests.get(real_url,headers=headers)
            with open(path + "\\" + pic_name + ".jpg",'wb') as file:
                file.write(response.content)
                print(path + "\\" + pic_name + ".jpg has been saved.")
            i += 1
            if i ==21:
                break
        browser.find_element_by_class_name("downpage").click()
        page += 1



    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    7 小时前
  • 签到天数: 1069 天

    [LV.10]以坛为家III

    发表于 2020-8-18 10:19:20 | 显示全部楼层
    谢谢楼主分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-11-25 15:53
  • 签到天数: 122 天

    [LV.7]常住居民III

    发表于 2020-8-18 11:05:47 | 显示全部楼层
    谢谢楼主,这一下美滋滋了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 933 天

    [LV.10]以坛为家III

    发表于 2020-8-19 08:55:17 | 显示全部楼层
    不太清楚这是干啥用的
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-25 14:08
  • 签到天数: 1314 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-8-19 20:47:15 | 显示全部楼层
    [ 本帖最后由 zyjsuper 于 2020-8-19 21:37 编辑 ]\n\n[ 本帖最后由 zyjsuper 于 2020-8-19 21:36 编辑 ]\n\n改成无界面启动更好一些,在爬取过程中确实需要一点时间,但是个人觉得写爬虫最好不要用多线程,可能造成目标服务器的额外负担。
    这个爬虫程序虽然时间成本高一些,但是确实很有效果,可以灵活变通,举一反三,拿到自己想要的结果。
    写爬虫要遵循一些原则,每个人会有不同的体会,也希望大家分享自己的想法。

    [Python] 纯文本查看 复制代码
    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    
    '''
    @Author  :   zyjsuper
    @License :   (C) Copyright 2013-2020
    @Contact :   [email]zyj_super@163.com[/email]
    @File    :   MztSpider.py
    @Time    :   2020/8/17 20:23
    @Desc    :
    '''
    
    
    from selenium import webdriver
    import requests,os
    
    
    def get_pic(page):
        browser = webdriver.Chrome()
        browser.minimize_window()
        browser.get("https://www.mzitu.com/page/" + str(page))
    
        headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0',
                'Referer': 'https://www.mzitu.com/japan/'
        }
    
    
        username = os.getenv("USERNAME")
        savepath = "C:\\Users\\"+ username + "\\Desktop\\Meizitu\\page-" + str(page) +"\\"
        try:os.mkdir(savepath)
        except:pass
    
        links  = browser.find_elements_by_xpath("//ul[@id='pins']/li/a")
        urls = []
        for link in links:
            url = link.get_attribute("href")
            urls.append(url)
    
        p = 1
        for url in urls:
            chrome_options = webdriver.ChromeOptions()
            chrome_options.add_argument('--headless')
            browser = webdriver.Chrome(chrome_options=chrome_options)
            browser.get(url)
            pic_url = browser.find_element_by_xpath("//div[@class='main-image']//p//a//img").get_attribute("src")
            response = requests.get(pic_url,headers=headers)
            with open(savepath + str(p) + ".jpg","wb") as file:
                file.write(response.content)
            p += 1
        browser.quit()
    
    if __name__ == '__main__':
        for p in range(169,254):
            get_pic(p)

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-25 14:08
  • 签到天数: 1314 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-8-19 20:47:16 | 显示全部楼层
    改成无界面启动更好一些,在爬取过程中确实需要一点时间,但是个人觉得写爬虫最好不要用多线程,可能造成目标服务器的额外负担。
    这个爬虫程序虽然时间成本高一些,但是确实很有效果,可以灵活变通,举一反三,拿到自己想要的结果。
    写爬虫要遵循一些原则,每个人会有不同的体会,也希望大家分享自己的想法。

    [Python] 纯文本查看 复制代码
    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    
    '''
    @Author  :   zyjsuper
    @License :   (C) Copyright 2013-2020
    @Contact :   [email]zyj_super@163.com[/email]
    @File    :   MztSpider.py
    @Time    :   2020/8/17 20:23
    @Desc    :
    '''
    
    
    from selenium import webdriver
    import requests,os
    
    
    def get_pic(page):
        browser = webdriver.Chrome()
        browser.minimize_window()
        browser.get("https://www.mzitu.com/page/" + str(page))
    
        headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0',
                'Referer': 'https://www.mzitu.com/japan/'
        }
    
    
        username = os.getenv("USERNAME")
        savepath = "C:\\Users\\"+ username + "\\Desktop\\Meizitu\\page-" + str(page) +"\\"
        try:os.mkdir(savepath)
        except:pass
    
        links  = browser.find_elements_by_xpath("//ul[@id='pins']/li/a")
        urls = []
        for link in links:
            url = link.get_attribute("href")
            urls.append(url)
    
        p = 1
        for url in urls:
            chrome_options = webdriver.ChromeOptions()
            chrome_options.add_argument('--headless')
            browser = webdriver.Chrome(chrome_options=chrome_options)
            browser.get(url)
            pic_url = browser.find_element_by_xpath("//div[@class='main-image']//p//a//img").get_attribute("src")
            response = requests.get(pic_url,headers=headers)
            with open(savepath + str(p) + ".jpg","wb") as file:
                file.write(response.content)
            p += 1
        browser.quit()
    
    if __name__ == '__main__':
        for p in range(169,254):
            get_pic(p)

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表