前おそらく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のを深めました。~~~