Pythonで漫画をつかみmobi形式の電子書籍を作る

9107 ワード

ある漫画を見たいですが、携帯電話で見ると画面が小さすぎて、パソコンで見ましょう.ちょうどKindleがあって、爬虫類を書いて漫画をはがし、mobi形式の電子書籍を作ってkindleに入れて読むことにしました.
一、爬虫プログラムの作成
Chromeブラウザでターゲットサイトを開き、F 12を押して「開発者ツール」を起動し、ターゲットサイトのコードを分析し、漫画が保存されている実際の住所を読む.現在、サイトの防護措置はよく行われており、「右ボタン」——「画像を別名保存」して漫画を保存することはほとんどありません.漫画ページの「次の章」ボタンに対応する要素を分析し、Python+selenium+Chromeブラウザの組み合わせを使用することで、爬虫類を自動化して漫画のすべての章を遍歴させ、漫画をダウンロードします.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import requests
import os



def mkdir(path):
    '''
          
    :param path:
    :return:
    '''
    if not os.path.exists(path):
        os.mkdir(path)


def SavePic(filename,url):
    '''
         
    :param filename: 
    :param url: 
    :return: 
    '''
    content = requests.get(url).content
    with open(filename,'wb') as f:
        f.write(content)

def get_TOF(index_url):
    url_list = []
    chrome_options = Options()
    chrome_options.add_argument('--headless')#  Chrome   “    ”,      
    browser = webdriver.Chrome(chrome_options=chrome_options)    
    browser.get(index_url)
    browser.implicitly_wait(3)

    title = browser.title.split(',')[0]#      
    mkdir(title)#    

    comics_lists = browser.find_elements_by_class_name('comic_Serial_list')#      
    for part in comics_lists:#             
        links = part.find_elements_by_tag_name('a')
        for link in links:
            url_list.append(link.get_attribute('href'))#          
    browser.quit()
    Comics = {'name':title,'urls':url_list}
    return Comics

def get_pic(Comics):
    comic_list = Comics['urls']
    basedir = Comics['name']
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    browser = webdriver.Chrome(chrome_options=chrome_options)    for url in comic_list:
        browser.get(url)
        browser.implicitly_wait(3)
        dirname = basedir+'/'+browser.title.split('-')[1]
        mkdir(dirname)
        #          
        pageNum = len(browser.find_elements_by_tag_name('option'))
        #       
        nextpage = browser.find_element_by_xpath('//*[@id="AD_j1"]/div/a[4]')
        for i in range(pageNum):
            pic_url = browser.find_element_by_id('curPic').get_attribute('src')
            filename = dirname+'/'+str(i)+'.png'
            SavePic(filename,pic_url)
            nextpage.click()
        print('    \t{}      '.format(browser.title))
    browser.quit()
    print('')


if __name__ == '__main__':
    url = str(input('
')) Comics = get_TOF(url) #print(Comics) get_pic(Comics)

 
二、フォルダの整理順序
漫画のダウンロードが終わったら、章順に漫画のフォルダを並べます.「フォルダ名順」が漫画の章順と同じであることを確認します.(ここではPythonでスクリプトの名前を変更したり、フォルダの一括ネーミングソフトで作成したりすることができます)、電子書籍の作成が便利です.
  
三、電子書籍を作る
ここではソフトウェアKindle Comic Converterを使用します(具体的な使い方は表示されます).https://bookfere.com/post/164.html)を作成します.Kindle Comic Converter生成MOBIファイルはKindleGenに依存しており、見つからない場合はインストール完了および実行時にプロンプトが表示されます.ここをクリックしてください(https://bookfere.com/tools#KindleGen)KindleGenをダウンロードして該当する場所に置く:Windowsシステムはkindlegenを置く.ExceはKCCインストールディレクトリに入れます.Mac OS Xではkindlegenプログラムをパス"/usr/local/bin"の下に置く必要があります.変換手順を続行します.
また、ネットで言う制作過程は
  • はすべての画像を1つのフォルダに集中します.
  • [Add directory]をクリックしてフォルダをリストに追加[注1].
  • Kindleデバイスの型番、出力フォーマット(オプションMOBI、EPUB、CBZ)を選択する.
  • 「Horizontal mobi(クロススクリーンモード)」など、必要に応じてパラメータを追加します.
  • 【Convert】をクリックして変換を開始します.生成された電子書籍ファイルは、追加されたフォルダと同じディレクトリにあります.

  • 【後記】
    私がテストした結果、最も便利な方法はすべての画像を1つのフォルダに集中しないことです.「三、電子書籍作成」の手順1では、「漫画名」フォルダを作成し、その下に「第1章」「第2章」などのフォルダを作成する.各章のフォルダには、順番に保存された漫画の画像が入っています.(具体的なソート要件は、本明細書の「二、フォルダの整理順序」を参照してください).「Add directory」をクリックして「漫画の名前」フォルダをリストに追加し、変換すると、変換された電子書籍にディレクトリとブックマーク効果があります!
    著作権に注意してください!自分のプログラミング学習とテストだけで、作ったmobi電子書籍を伝播しないで、利益を得ないでください.原作とコンテンツプロバイダを尊重!
    転載先:https://www.cnblogs.com/codex/p/9377487.html