Python爬虫類初心者入門の初学lxml庫


1.爬虫類とは何ですか
爬虫類とは、一定の規則に従って、自動的にインターネットから情報を取り込むプログラムやスクリプトです。万维网は巨大な蜘蛛の巣のように、私たちの爬虫は上の蜘蛛のように、绝えずに私たちの必要な情报を掴みに行きます。
2.爬虫類の三要素
  • つかみ
  • 解析
  • メモリ
  • 3.爬虫類の過程分析
    人間が一つのホームページを訪問する時、どのように行いますか?
    ①ブラウザを開いて、アクセスするURLを入力し、要求を開始します。
    ②サーバがデータに戻るのを待って、ブラウザでウェブページを読み込みます。
    ③ホームページから必要なデータ(テキスト、画像、ファイルなど)を見つけます。
    ④自分に必要なデータを保存します。
    爬虫類についても似ています。人間がウェブサイトを要求する過程を模倣していますが、ちょっと違っています。
    まず、上記の①と②の手順に対応して、私達はpythonを利用してウェブページを要求する機能を実現します。
    次に、上記の③手順に対応して、pythonを利用して解析要求のページの機能を実現します。
    最後に、上記の④手順に対して、私達はpythonを利用してデータを保存する機能を実現します。
    簡単な爬虫類の話ですから、他の複雑な操作はここでは言いません。以下、上のいくつかの機能について、逐一分析します。
    4.どのようにpythonでウェブページを要求しますか?
    豊富な種類のライブラリを持つプログラミング言語として、pythonを利用してウェブサイトを要求するのは全く話にならない。ここではとても使いやすいクラスを紹介します。
    4.1.ウェブページをつかむ
    urllibライブラリ使用
    
    import urllib.request
     
    response = urllib.request.urlopen('https://laoniu.blog.csdn.net/')
    print(response.read().decode('utf-8'))
    
    これでcsdnの私のホームページのhtml文書をつかむことができます。
    私達は爬虫類を使うのはホームページから必要なデータを抽出します。次に私達はBaiduの検索ページのランキングデータをつかむことを学びます。

    4.2.どのようにホームページを解析しますか?
    lxmlライブラリを使用する
    lxmlはPythonを使って作成したライブラリで、XMLとHTMLを迅速かつ柔軟に処理できます。
    XML Path LanguageとExtenseble Styleesheet Language Trans formation(XSLT)をサポートし、一般的なElement Tree APIを実現しました。
    インストール
    windowsの下でインストールします
    
    #pip    
    pip3 install lxml
     
    #wheel     
    #         wheel  :http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
    pip3 install lxml-4.2.1-cp36-cp36m-win_amd64.whl
    
    linuxでインストール
    
    yum install -y epel-release libxslt-devel libxml2-devel openssl-devel
     
    pip3 install lxml
    
    環境/バージョン一覧:
  • 開発ツール:PyCharm 20.2.3
  • python:3.8.5
  • 4.3コードの作成
    
    import urllib.request
    from lxml import etree
     
    #       
    url = "https://www.baidu.com/s?ie=UTF-8&wd=1"
    #         User-Agent  ,                             ,                    
    req = urllib.request.Request(url=url, headers={
     'User-Agent': 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
    })
    #     
    html_resp = urllib.request.urlopen(req).read().decode("utf-8")
    
    ここまで順調に百度の検索ページを入手できます。
    私たちは熱い検索ランキングのタグの要素を見てみたいです。どこにありますか?


    最初のストリップを見つけました  右クリックでXPSをコピーします   (後でXXPSとは何ですか?

    私たちはXXXPSを理解して使用する必要があります。XMLドキュメントのある部分の位置を特定するための言語です。
    コピーした内容の結果は、//*[@id="con-ar"]/div[2]/div/div/table/tbody[1]/tr[1]です。
    このxPath文字列は、現在位置を示しています。これはホットスポットニュースの最初の行の内容です。
    5.XPTath常用規則
    表式
    説明
    nodename
    このノードのすべてのサブノードを選択します。
    を選択します。
    現在のノードから直接のサブノードを選択
    //
    現在のノードから子孫ノードを選択
    ..。
    現在のノードを選択
    ..。
    現在のノードの親ノードを選択
    @
    属性を選択

    ワイルドカード、すべての要素ノードと要素名を選択します。
    @*
    すべての属性を選択
    [@atrib]
    与えられた属性を持つすべての要素を選択します。
    [@atrib='value']
    与えられた属性の値を持つすべての要素を選択します。
    [名]
    指定された要素を持つすべての直接サブノードを選択します。
    [(=text]
    指定された要素をすべて選択し、テキストの内容はtextノードです。
     
    6.分析を続ける
    私たちはホットスポットのニュースを全部入手したいですが、どう書きますか?
    ホームページを見続けます

    すべてのランキングが3つの「tbody」の下に表示されます。
    先ほどコピーしたXPSを修正します。//*[@id="con-ar"]/div[2]/div/div/table/tbody[1]/tr[1]を変更しました   //*[@id="con-ar"]/div[2]/div/div/table/tbody/trXPTathはこの3つのtbodyのすべてのtr要素の内容に位置します。
    私達は引き続きtrを見てみます。私達が欲しい内容ではないですか?trを展開してみます。

    手冢~まだいっぱいあります
    どうすればいいですかデータを入手する必要があるのは【タイトル】【アクセスリンク】【熱】です。今持っているのはすべてのtr元素です。
    次にtrから直接に下のすべてのタグのタイトとハレパリングを取得する。タイトールのXPS Tath:*/a/@title ha-rin克のXPS:  */a/@h ref*trにマチするべの要素を表します。  /aは*で最初のaラベルを见つけました。  @属性セレクとhrefは选択する素の属性です。まだが熱が残っています。let's meは引続操作して、直接trの下の第二tdを选択します。  XPS Tath:td[2]分析が终わったら、完全なコードを贴り付けます。 import urllib.request from lxml import etree 湖南省で百度のホットランキングを獲得した url="https://www.baidu.com/s?ie=UTF-8&wd=1″ 私たちはUser-Agentパラメータにヘッダを入れてください。この要求はブラウザを通じてユーザによって開始された正常な要求であり、爬虫類プログラムと識別された要求による直接の訪問拒否を防ぐことができます。 req=urllib.request.Request(url=url、headers={ 'User-Agent':'User-Agent:Mozila/5.0(Macintosh;Intel Mac OS X 11_1_0)Apple WebKit/537.36(KHTML、like Gecko)Chrome/87.0.480.88 Safari/537.36' } 同前rep=urllib.request.urlopen(req).read().decode(「utf-8」) html=etree.HTML(html uresp)钻初期化により、XPS解析対象を生成する。 _。list=httml.xpath('/*[@id='con-ar')/div[2]/div/div/div/table/tbody/tr] print(f"articale count:{len}list)⇒') for tr in_リスト: title=tr.xpath(「*/a/@title」)[0] href=tr.xpath(「*/a/@href」)[0] hot=tr.xpath(「string(td[2]」).strip() print(f"{hot}\t{title}\thttps://www.baidu.com{href} 运転をクレックして、プロがパンと歩いた。とても速いです。デ-タが全部来ました。全部受け止めました。笑ってみました。これでlxml xpathの基本使用が完了しました。って詳しいxpath教程をご一覧ください。https://www.w3school.com.cn/xpath/index.asp爬虫類の3要素、デカをつかむのは完成して、残の分析と記憶は先に言葉がわからないでください。缔めくくりをつけるここで、Python爬虫类初心者入门のlxmlライブに関する记事を绍介します。Python爬虫類入門のlxmlライブの内容については、以前の文章を検索した、次の関連記事を見た。これからもよろしくお願いします。