Selenium实例2-截图爬取漫画

整体思路分三步:
模拟浏览器–>截取浏览器当前屏幕–>保存漫画截图
目标网址
http://www.1kkk.com/ch1000-514226/

这里写图片描述

(1)获取浏览器(模拟浏览器)

def getBrowser(self):
        broswer = webdriver.PhantomJS()
        try:
            broswer.get(self.startUrl)
        except:
            print("error url")
        return broswer

(2)打开开发者工具,分析需要爬取的页码数,然后找到下一页

这里写图片描述

代码如下

def saveCartoon(self,broswer):
        #broswer.title.split('_')[0]
        cartoonTitle = '1漫画'
        self.createDir(cartoonTitle)
        os.chdir(cartoonTitle)
        #/html/body/div[2]/h1/font/span[2],获取漫画页数
        sumPage = int(self.broswer.find_element_by_xpath('//font[@class="zf40"]/span[2]').text)
        i = 1
        while i<=sumPage:
            imgName = str(i) + '.png'
            broswer.get_screenshot_as_file(imgName)
            i = i+1
            #自动翻页
            NextTag = broswer.find_element_by_id('next')
            NextTag.click()
            time.sleep(5)

(3)创建目录函数

def createDir(self,dirName):
        if os.path.exists(dirName):
            print("create directory failed")
        else:
            try:
                os.makedirs(dirName)
            except:
                print("create directory failed")
            else:
                print("create directory failed")

(4)爬取的内容如下

这里写图片描述

完整代码

from selenium import webdriver
import os 
import time

class GetCartoon(object):
    def __init__(self):
        self.startUrl = 'http://www.1kkk.com/ch1-406302'
        self.broswer = self.getBrowser()
        self.saveCartoon(self.broswer)
        self.broswer.quit()

    def getBrowser(self):
        broswer = webdriver.PhantomJS()
        try:
            broswer.get(self.startUrl)
        except:
            print("error url")
        return broswer

    def saveCartoon(self,broswer):
        #broswer.title.split('_')[0]
        cartoonTitle = '1漫画'
        self.createDir(cartoonTitle)
        os.chdir(cartoonTitle)
        #/html/body/div[2]/h1/font/span[2],获取漫画页数
        sumPage = int(self.broswer.find_element_by_xpath('//font[@class="zf40"]/span[2]').text)
        i = 1
        while i<=sumPage:
            imgName = str(i) + '.png'
            broswer.get_screenshot_as_file(imgName)
            i = i+1
            #自动翻页
            NextTag = broswer.find_element_by_id('next')
            NextTag.click()
            time.sleep(5)

    def createDir(self,dirName):
        if os.path.exists(dirName):
            print("create directory failed")
        else:
            try:
                os.makedirs(dirName)
            except:
                print("create directory failed")
            else:
                print("create directory failed")

if __name__ == '__main__':
    GC = GetCartoon()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值