B.XPathを使う方法

「プログラミング」及び「開発」関連用語集

カテゴリー: クローラ  閲覧数:420 配信日:2017-03-02 21:49


XPath


XML形式の文書の要素を指定する言語

Chromeブラウザを使用して「任意のHTML要素のXPath」を確認する手順
・1.要素の検証
・2.Elementsタブの任意の要素を右クリック
・3.Copy XPath でXPathを取得

PythonでXPathを使う時はlxmlモジュールを使用
・ 要素を指定して、値を抽出


コード例


▼HTML
<html>
 <head>
   <meta charset='utf-8' />
 </head>
 <body>
   <h1>クローリングとスクレイピング</h1>
   <div id="articleInfo">
     <p>
       <span class="timestamp">2017-3-2 21:15:35</span>
       <span class="author"><a href="http://programming-term.w4c.work/">プログラミング用語</a></span>
     </p>
   </div>
   <div id="articleText">
     ウェブサイトのクローリングとスクレイピングについて  

   </div>
 </body>
</html>


▼Python
#coding: utf-8
import urllib2
import lxml.html

#変数htmlには上記のHTMLがstrで代入されているとします。
dom = lxml.html.fromstring(html)

#変数title, timestamp, author, author_link, bodyにそれぞれタイトル、投稿日時、著者、著者のリンク、記事本文が代入されます。
title = dom.xpath('//h1')[0].text
timestamp = dom.xpath('//*[@id="articleInfo"]//*[@class="timestamp"]')[0].text
author = dom.xpath ('//*[@id="articleInfo"]//*[@class="author"]/a')[0].text
author_link = dom.xpath ('//*[@id="articleInfo"]//*[@class="author"]/a')[0].attrib['href']
body = dom.xpath('//*[@id="articleText"]')[0].text