ブログの記事をクロール--- lxmlの爬虫類

  前おそらくlxmlの下の使用状況を書いた、そして今日は私のブログのブログをクロールケースを通じて実践し、ローカルに保存

 

ブログのブログをクロールパーク

アイデアをクロール:

1は、すべての最初は、ブログのアドレス公園のクロールを見つける必要があります

2、庭解決ブログのアドレス

#のコーディング:UTF-8 
のインポート要求
 から lxmlのインポートetree
 #の博客の园地址 
URL = ' http://www.cnblogs.com/qican/ ' 
ヘッダ = {
     " のUser-Agent "" Mozillaの/ 5.0(Windows NTの6.1。 WOW64)のAppleWebKit / 537.36(KHTML、ヤモリなど)クローム/ 69.0.3497.81サファリ/ 537.36 
}
HTML = requests.get(URL、ヘッダー= ヘッダ)の.text
 解析HTMLコンテンツ 
XML = etree.HTML(HTML)

ブログのタイトルと内容でブログをクロール3は、名前をリンクします。

HREFタグに我々が必要とするデータとテキストの内容を分析した後

标题 
title_list = xml.xpath(' //のdiv [@クラス= "postTitle"] / /テキスト()' 链接のURL 
url_list = xml.xpath(" //のdiv [@のクラス= "postTitle"] / A / @ hrefの"

4、再び要求してブログの詳細は、ブログのコンテンツにリンク

タイトル、ループのために、そして、ブログのコンテンツを取得し、再びブログのリンクを要求してコンテンツへのリンクを取得するには

以下のために I、J ZIP(title_list、URL_LIST):
    再びブログのリンクを要求 
    R2 = requests.get(J、ヘッダ= .textセクションヘッダ)
     #は、内容解析 
    xml_content = etree.HTML(R2)
    、コンテンツブログ取得 
    = xml_contentコンテンツを。 XPathの(' //のdiv [@のクラス= "postBody"] //テキスト()'

5、txtファイルに書き込まれたブログの内容を取得します。

書き込みとtxtファイルによって、ここで符号化形式の内容を注意します

 X における含有量:
         プリント(x.strip())
        オープンと(iは + ' の.txt '' + '、エンコード= ' UTF-8 ' )、Fのように:
            f.write(X)

私たちは、すべてのデータがページブログをシミュレートするために取得するには、ページのページネーションコントロールがあることを見出し、我々はURLリンクを観察し、これは最初のページの内容だけで、もちろん、我々はブログがtxtファイルに書かれていたことをあなたに書きますコンテンツ

 

コードは以下の通りであります:

アナログループを得るためのページングを

#のコーディング:UTF 8つの。
インポート要求
 から lxmlのインポートetreeの
 URLページング・サイクル・シミュレーションによる
ページの範囲(1,4 ):
ブログのアドレス公園の 
    URL = " https://www.cnblogs.com/qican/default.html ?ページS%= "%のページを
     印刷する(URL)
    ヘッダー = {
         " ユーザエージェント"" はMozilla / 5.0(のWindows NT 6.1; WOW64)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 69.0.3497.81サファリ/ 537.36 "
    }
    HTML = requests.get(URL、ヘッダ= ヘッダ)の.text
     パースHTMLコンテンツ 
    XML = etree.HTML(HTML)
    タイトル 
    title_list = xml.xpath(" /テキスト// divの[クラス@ = "posttitle"] / A ()' #のリンクURL 
    URL_LIST = xml.xpath(' //のdiv [@クラス= "posttitle"] / A / @用のhref " のための I、J ZIP(title_list、URL_LIST):
         印刷(ⅰ)
        再びリクエストブログリンク 
        R2 = requests.get(J、ヘッダー= ヘッダ)の.text
         内容を解析 
        xml_content =etree.HTML(R2)
        コンテンツブログ取得 
        コンテンツ= xml_content.xpath(' // divの[クラス@ = "postBody"] //テキストを()' #は、コンテンツ書き込み
         X- のコンテンツを:
             印刷(x.strip( ))
            オープンと(iは + ' の.txt '' + '、エンコード= ' UTF-8 ' )、Fのように:
                f.write(X)

 

場合によってシンプルな使用法は再び、当然のことながら、使用の種類などのさまざまな方法を、lxmlのを深めました。~~~

 

おすすめ

転載: www.cnblogs.com/qican/p/11264889.html