0

問題の Web ページはhttp://assignments.uspto.gov/assignments/q?db=pat&pub=20060030630です。

ここで、最初の割り当てで担当者をキャプチャしたいとしましょう。関連するコードは次のようになります

   <div class="t3">Assignee:</div>
  </td>
 </tr>
</table>
</td><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
 <tbody valign="top">
  <tr>
   <td>
    <table>
     <tr>
      <td>
       <div class="p1">
        <a href="/assignments/q?db=pat&amp;asned=LEAR%20CORPORATION">LEAR CORPORATION</a>
       </div>
      </td>
     </tr>
    <tr>
   <td><span class="p1">21557 TELEGRAPH ROAD</span></td>
  </tr>
  <tr>
   <td><span class="p1">SOUTHFIELD, MICHIGAN 48034</span></td>
  </tr>
 </table>
 </td>
</tr>
</tbody>
</table>
</td>
</tr>

xpath を使用して、クラス p1 のスパンからすべてを取得すると仮定できますが、ページ全体で基本的にすべてのものが使用されていることを除いて、lear Corporation が含まれている div クラスと同じです。

それで、「担当者」を読んで、それに関連する情報だけを取得する方法はありますか?

その方法を理解できれば、そこから推測して、必要なページ上の特定のデータを取得する方法、つまり、特定の割り当てで搬送データを取得する方法を見つけることができます。

しかし、ページ上のすべてのデータ (リール/フレーム、搬送、譲渡人、譲受人、すべての譲渡の特派員、および特許自体に関するヘッダー情報) を取得するだけであれば、個々の情報を取得しますか?

4

1 に答える 1

0

この情報が DOM に指定されていないため、これを行う明確な方法はありません。非常に恣意的です。

担当者が DOM 内のどこに存在するかのパターンを把握するために、数学を使用することをお勧めします。

たとえば、 のすべてのクラスについてp1、担当者の値は position16であり、すべてのポジションで新しい Assignment が発生することがわかってい23rdます。ループを使用すると、それを理解できます。

これで、少なくとも開始できるはずです。

$Site = file_get_contents('http://assignments.uspto.gov/assignments/q?db=pat&pub=20060030630');

$Dom = new DomDocument();
$Dom->loadHTML($Site);
$Finder = new DomXPath($Dom);
$Nodes = $Finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' p1 ')]");

$position = 0;
foreach($Nodes as $node) {
    if(($position % 16) == 0 && $position > 0) {
        var_dump($node->nodeValue);
        break;
    }
    $position++;
}
于 2013-05-24T13:11:45.790 に答える