Je suis en train d'écrire un script GM pour extraire des informations d'une page web qui contient une table (il n'y a qu'un seul tableau et sans identifiant) et ajouter les informations de cette table dans une page Web existante. J'ai tout eu pour travailler, sauf d'extraire les informations du fichier que j'ai obtenu de GM_xmlhttprequest
.Extraction d'informations d'une table à partir d'un fichier html externe
GM_xmlhttpRequest({
method: 'GET',
url: tableToBeScrape,
onload: function (response) {
var respDoc = response.responseText;
console.log(respDoc);
alert(respDoc);
}
});
La respDoc renvoie la page Web dans le formulaire HTML complet. Mais j'ai eu du mal à extraire l'information. Je l'avais essayé quelques façons
var listAllArray = [];
responseHTML = new DOMParser().parseFromString(response.responseText, 'text/html');
listAllArray = responseHTML.getElementsByClassName('table table-bordered table-striped table-condensed');
En utilisant une boucle et boucle à travers le listAllArray
Je n'ai rien hors du tableau.
Voici comment le code html ressemble
<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>
Comment extraire l'ID de pièce, le numéro de série et l'emplacement de la table?
Partie 2: La réponse que j'ai obtenue de response.responseText
était différente de ce que je supposais. Il n'y avait pas de table mais plutôt 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>
la 'td.each (fonction (point, IDX)' est pas mise en boucle à travers, quand je fais un console.log pour les e et td il ne retourne un objet – LHH