私は、テーブルを含むWebページから情報をスクラップするためのGMスクリプトを作成しています(idが1つしかなく、IDはありません)、そのテーブルからいくつかの情報を追加します既存のウェブページに追加する。私はGM_xmlhttprequest
から得たファイルから情報を抽出する以外はすべて動作させています。外部HTMLからテーブルの情報を抽出する
GM_xmlhttpRequest({
method: 'GET',
url: tableToBeScrape,
onload: function (response) {
var respDoc = response.responseText;
console.log(respDoc);
alert(respDoc);
}
});
respDocは完全なHTML形式でWebページを返します。しかし、私は情報を抽出するのが難しかった。私は、アレイの外に何も持っていないlistAllArray
を通してループとループの使用のいくつかの方法
var listAllArray = [];
responseHTML = new DOMParser().parseFromString(response.responseText, 'text/html');
listAllArray = responseHTML.getElementsByClassName('table table-bordered table-striped table-condensed');
をしようとしました。ここで
は、HTMLは、私はテーブルのうち、パートID、シリアル番号と場所を抽出するにはどうすればよい
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Part ID</th>
<th>Serial Number</th>
...
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
...
<td>123</td>
<td>sn123456</td>
...
<td>shelf 12</td>
</tr>
</tbody>
</table>
どのように見えるかですか?
パート2: 私がresponse.responseText
から得た応答は、私が想定したものと異なりました。テーブルはありませんでしたが、むしろdiv ul li
です。
<div class='search_refinements' data-collapsed='true' data-role='collapsible'>
<h4>Refine Your Results</h4>
<ul data-filter='true' data-role='listview'>
<li data-role='list-divider'>Company Name</li>
<li> ACB Inc. </li>
...
<li data-role='list-divider'>Part</li>
<li> 123 </li>
<li data-role='list-divider'>Serial Number</li>
<li> sn123456</li>
...
<li data-role='list-divider'>Location</li>
<li> shelf 12</li>
</ul>
</div>
'td.each(関数(項目、idxが)'私は番目の両方のためにconsole.logを行うとTDとき、それはオブジェクト – LHH