セレンPythonプログラミング学習の使用は、アクセス可能なページを識別し、Webコンテンツを取得します

I.はじめに

私は、ドメイン名の一部に前回の記事で収集し、これらのドメインに収集した後、すべてのドメインが役割を持っていない、我々はフィルタリングする必要があり、サイトにアクセスすることはできません、スタートクロムのサイトを要求するために、セレンモジュールで、今日の使用はPythonを学ぶので、次はあなた自身の学習プロセスを記録します。

第二に、学習プロセス

1.開発ツール:

Pythonのバージョン:3.7.1

  関連モジュール:

セレンモジュール

pymysqlモジュール

2.はじめに原則

データベースに保存されているセレンを使用してアクセスするデータベースの必要性から、ドメイン名の読み取りは------ウェブサイトのドメイン名を訪問し、タイトル、コンテンツの長さ、スクリーンショットを取得------

セレンwebdriverをインポート
selenium.webdriver.chrome.optionsからのインポートオプション
インポートpymysqlの

#は、実行可能なドメイン取得
:DEF RUN(カーソル)
    #ドメイン名取得
    ドメイン= get_domains(カーソル)

    #クロームパラメータオプション
    chrome_options =オプション() ヘッドレス操作を
    chrome_options.add_argument( ' -ヘッドレス') クロム動作するように、このパスを使用して
    chrome_options.binary_location R&LT = '%S' % "/アプリケーション/ Chromium.app /目次/ MacOSの/クロム" 

    #インスタンスを作成クロム
    ドライバ= webdriverを.chrome(executable_path =(R&LT '/ユーザ/ハロー/デスクトップ/ chromedriver / chromedriver')、オプション= chrome_options) は、20秒のタイムアウト時間を設定
    driver.set_page_load_timeout(20)
    success_list = []
    ドメインIのためにある: 
ドメイン名に#のデータベースクエリを
        試してみる:
            #请求网站
            driver.get( 'https://で' + I [0]) 获取网站的信息
            http_length = LEN(driver.page_source)
            HTTP_STATUS = '响应成功' 
            img_path =「/ユーザ/ハロー/デスクトップ/ PY試験/%s.png「%I [0] 
            スクリーンショット= driver.get_screenshot_as_file(img_path)
            場合driver.title:
                タイトル= driver.title 
            他:
                タイトル= '' 
            success_list.append([I [0]は、タイトル、http_length 、img_path、HTTP_STATUS])
        を除く:
            印刷( '%sの响应失败' %I [0])
    戻りsuccess_list 

get_domains DEF(カーソル): 
    SQL = "SELECT FROM数据库ホスト名" 
    cursor.execute(SQL)
    domain_lists = cursor.fetchall()
    の戻りdomain_lists 

#把可访问的域名插入数据库
デフ挿入(カーソル、リスト、DB):
    I中のためリスト:
        %I [0] "数据库ホスト名= '%S' FROM SELECT ID" select_sql = 
        cursor.execute(select_sql)
        結果= cursor.fetchone()
        update_sql =「UPDATE数据库SET PAGE_TITLE = '%s'は、http_length = %のD、page_jietu_path = '%s'は、HTTP_STATUS = '%s'はID =%S」%(I [1]、I [2]、I [3]、I [4]結果[0])
        カーソル.execute(update_sql)
        db.commit()

__name__ == "__main__"の場合:
    DB = pymysql.connect( 'ローカルホスト'、 ' アカウント'、 'パスワード'、 '試験')) 
    カーソル= db.cursor()

    リストRUN =(カーソル)
    INSERT(カーソル、リスト、DB)
    db.Close()

  

第三に、結果は

 

 IVの概要

プログラムが強化する必要があるのプログラミング、遅いです。

 

 

 

おすすめ

転載: www.cnblogs.com/liuzzzzzz/p/11979891.html