Python クローラー lxml の etree クラス クレイジー スローター 著作権侵害

Python のインストールについてはあまり紹介しません。

この URL では、lxml について詳しく説明します。

lxml.etree チュートリアル (Stefan Bernel 著)

まず最初に、「私がコードであり、データをクロールしたい」と言うのではなく、Web ページから Web ページのデータをクロールするには、Web サイト モードをシミュレートする必要があることを思い出してください。 (賢い人) キャンパス ネットワークを使用している場合、学校全体の人々がこの Web サイトにログインできない可能性があります。携帯電話のホットスポットを使用すると、この問題を回避できます (機内モードをオンにして、数秒待つだけです)分が経つと、ベースステーションが別の IP アドレスを割り当てるので、私たちは罪を犯し続けることができます、ははははははは!!)

ここではリクエスト ライブラリを使用します。

成功した場合は成功と表示されます

lxml ライブラリ:

 

その後、私たちは Biquge の Web サイトを探し始めました (海賊版については、Biquge_Book Friends の最も価値のあるオンライン小説コレクション!_beqege.comを参照してください)。

 ここでは純正を使用しています(言いにくいですが)

好きな小説を見つけて URL を取得します。

初心者として私はxpathツールを使用しました

これは、初心者が処理プロセスを簡素化し、必要なテキストを直接見つけるのに役立ちます。

ここでは小説のタイトルと内容を検索するだけですが、もちろんクローラーのバッチ処理により次の章があるかどうかの判断や、次の章のURLアドレスを取得する必要もあります。

その後にコードフェーズが来ます

リクエスト ライブラリを通じて応答インターフェイスをリクエストし、lxml の etree クラスを通じて必要なテキストを選択します。

その後、テキストがフォルダーに書き込まれ、継続的にクロールされてテキストに追加されます。

以下は私の完全なコードです

import sys
import time
import requests
from lxml import etree

base_url = "https://www.bbiquge.net/book/133312/56524593.html"

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79'
}


def main():
    url = base_url
    with open('output.txt', 'w', encoding='utf-8') as file:
        for b in range(0,2):
            response = requests.get(url=url, headers=header,timeout=30)
            html = etree.HTML(response.text)
            pattern1 = html.xpath("/html/body/div[@id='main']/h1")
            pattern2 = html.xpath("/html/body/div[@id='main']/div[@id='readbox']/div[@id='content']")

            url1 = html.xpath("/html/body/div[@id='main']/div[@id='readbox']/div[@class='papgbutton']/a[@id='link-next']/@href")
            url = url1[0] if url1 else None
            for j in pattern1:
                file.write('\n'.join(j.xpath('./text()')))
                file.write('\n')
                for i in pattern2:
                    file.write('\n'.join(i.xpath('./text()')))
                    file.write('\n')
            time.sleep(2)
    return 0


main()
if __name__ == "__main__":
    sys.exit(main())

 xpath圧縮ファイルhttps://pan.baidu.com/s/14FUbSoM1u8JA1z7uZHX1wg

 パスワード: 1kbc

ファイルに直接解凍し、エッジ ブラウザはプラグインをローカルに設定する必要があります (Google はプラグインにプラグインを直接ダウンロードできます)。

  (シャオバイ・チュンチュンは自分の推論を記録しています。スプレーしないでください。何か間違っている場合は修正してください)

おすすめ

転載: blog.csdn.net/date3_3_1kbaicai/article/details/131692008