例パイソン:解説自動クロール有名な本、コンテンツ分析解説

アイデア:

1、リンクをコピーし、書籍、「もっと、」解説を開きます

2、スクリプトリンク分析は、いくつかの短い解説を取ることによって、ページ数を計算します

3、ページ数、ページがサイクル解説をクロールするとき

TXTに書き込まれた4、解説

5、TXTテキスト読書、テキスト処理句は、最も頻繁に、出力(X-前)が表示されます----自由他の発散の分析によって得られた結果

ライブラリを使用します。

lxmlの、再、jieba、時間

スクリプト全体は次のよう

- * -コーディング:UTF8 - * - エンコーディング:UTF8 豆瓣每页20条评论

インポート要求
 から lxmlのインポートetree
 インポートインポートjieba
 インポート時間

firstlink = " https://book.douban.com/subject/ 30193594 /コメント/ 

デフ stepc(firstlink): 获取评论条数 
    = URL firstlink 
    応答 = requests.get(URL = URL)
    wb_data = response.text 
    のhtml = etree.HTML(wb_data)
    AHtml.xpath =(' // * [ID = "全コメント" @] /テキスト()' リターン(A)
A = stepc(firstlink)
C = re.sub(R&LT ' \ D '"" [0]) 返すコメントスクリーニングデジタル 
Dは= INT(INT(C)/ 20 + 1) は、コメントの数でページ数、コメント数/ 20 + 1を算出する
プリント" 現在のレビューが持っている" + STR(D )+ " ページ、我慢してください" 


DEFの STEPA(firstlink、D): レビュー読んで 
    内容を= []
     のためのページの範囲(1 、D):
        URL = firstlink + " ホット?P " + STR(ページ)
        レスポンス = requests.get(URL = URL)
        wb_data = response.text 
        のhtml = etree.HTML(wb_data)
        A = html.xpath(" // * [@ ID = "コメント"] // DIV [2] / P /スパン/テキスト()' 
        content.append(A)
    リターン(コンテンツ)
A = STEPA(firstlink、D)

デフ STEPB(A): 写入txtを
    するための B  C B: 
            オープンして(":/Users/Beckham/Desktop/python/2.txt C '' A '、エンコーディング= ' UTF-8 ' W AS):
                w.write(' \ N- ' + C)は
                (w.close )
STEPB(A)
印刷" 完全なレビューをクロールし、キーワード分析" 
time.sleep( 5 

DEFの stepd(): コメントの分析 
    TXT =オープン(" C:\\ \\ベッカムユーザー\\デスクトップ2.txtのPython \\ \\ " " R 、エンコーディング= " UTF-8 ').read()    オープンセイバーテキスト 
    をexculdes = {}   は、辞書を作成し、主のためにランキング非文字を格納するために使用され、後に使用して除去 
    ワード= jieba.lcut(TXT)   テキスト解析するjiebaライブラリ 
    =カウントを{}
     のためのワード言葉は:     アッセイにフレーズをスクリーニングした後
        のIFでlen(ワード)== 1:   1フレーズよりも大きな文字の数が考慮されているフレーズ、その本は、コンテンツ1のエンドポイントに引き続き読み取ることで文字があるため、
            引き続き
        
            ワード = ワード
        カウント[単語] = counts.get(ワード、0)+1   単語の出現統計の頻度、単語が単語でない場合、戻り値は0であり、単語rwordで、および+1にこれはカウント蓄積
    のためのWord exculdes: 流通しているコンテンツとリードをexculdesフレーズ辞書が一致した場合、次いで濾過(図示せず)フレーズ
        デル(カウント[ワード])
    項目 =リスト(counts.items()) リストする辞書 
    項目を。ソート(キー= ラムダ X:[1]のX、リバース= TRUE) ラムダは、暗黙的な機能、固定文言で、次のコマンドの意味は、ソートされた2の記録に基づいている     
    ため、私レンジ(15): は、最初に示しました15データ 
        ワード、COUNT = 項目[I]
         印刷" {0:<{10} 1:> 10} " .format(ワード、COUNT)) 0:<10左、幅10、 "> 10"右揃え
stepd()       
 印刷解析完全に

結果

 

 

頻繁にこのスクリプトを実行する場合には、なお、クレソンと思いますあまりにも多くのIPアクセスポップアップ登録したいページ

 

 その他の解決、スクリプト内のコメントがあります

 

おすすめ

転載: www.cnblogs.com/becks/p/11440333.html