2016-12-10 1 views
0

Ich wollte metal-archives.com crawlen und die Informationen in eine Datenbank über Metallbänder legen. Nachdem ich den Code 20 Minuten lang betrachtet hatte, dachte ich, dass die Daten in einer JSON-Datei gespeichert werden, auf die mit der URL this zugegriffen werden kann. Das einzige Problem ist, dass der AJAX-Code festgelegt ist nur 200 Einträge pro Seite anzuzeigen:Wie ändere ich den AJAX-Code auf einer Webseite, die nach der Aktualisierung erhalten bleiben würde?

$(document).ready(function() { 
     createGrid(
     "#searchResults", 200, 

An der Spitze der Datei, die ich dort sehen kann, sind mehr als 11.000 Bands, aber nur 200 zeigen. Auch wenn ich auf die verschiedenen Seiten klicke, kümmert sich AJAX darum, die Daten dynamisch abzurufen, ohne die URL in der Adressleiste zu ändern, sodass ich den Rest der Bänder nicht sehen konnte.

Dann habe ich versucht, den Code oben auf "#searchResults", 1000 zu ändern, hoffend, dass es nach dem Auffrischen bleiben würde, aber, ach, kein Glück. Irgendeine Idee, wie ich das tun könnte, macht es im Wesentlichen möglich, den gesamten JSON zu einem Python-Wörterbuch zu analysieren und eine DB zu erstellen?

+0

Schauen Sie sich an, was der Ajax-Code trifft und rufen Sie ihn an. – epascarello

Antwort

1

Da die URL immer 200 Datensätze zurückkehrt, können Sie diese URL in Schleife aufrufen, bis Sie die alle Datensätze

erhalten

Schritt 1:

die unter URL, iDisplayStart=0 passieren und ersten 200 erhalten Aufzeichnungen,

http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=0&iDisplayLength=200

Schritt 2:

Analysieren Sie die json und erhalten Sie den Wert iTotalRecords in der JSON und rufen Sie die URL immer wieder in der Schleife, bis Sie alle Datensätze erhalten.

Sie können die iDisplayStart als iDisplayStart+=200 ändern, wie unten nächsten 200 Datensätze zu nennen

http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=200&iDisplayLength=200

und dann

http://www.metal-archives.com/search/ajax-band-search/?iDisplayStart=400&iDisplayLength=200

Hoffe, dass es Ihnen hilft.

Verwandte Themen