2017-09-17 5 views
0

Ich versuche Scrapy zu verwenden, um Kontaktinformationen der Universitätsprofessoren aus ihrem Verzeichnis zu sammeln. Da ich nicht mehr als 2 Links posten kann, lege ich alle Links in die following picture.Wie können Daten von einer verschlüsselten URL gecrawlt werden?

Ich lege den Nachnamen gleich aus dem Dropdown-Menü, wie im Bild gezeigt. Dann suche ich alle Professoren nach Nachnamen.

Normalerweise wird die URL einige Muster von anderen Universitäten Website haben. Für diese ist jedoch die ursprüngliche URL (1). Es wird (2), wenn ich "An" als Nachname suche. Es scheint, als ob "An" durch etwas wie 529385FD5FF90A198625819E002B8B41 ersetzt wird? Ich bin mir nicht sicher. Gibt es eine Möglichkeit, die URL zu erhalten, die ich als Anfrage senden muss? Ich meine, diesmal suche ich 'An'. Wenn ich einen anderen Nachnamen wie Lee suche. Es wird eine andere Anfrage sein. Sie sind unregelmäßig. Ich kann kein Muster finden.

Antwort

0

Der Abstreifer ist nicht so komplex wie Sie denken. Es ruft nur einen POST-Aufruf vom Formular ab und gibt eine GET-Anforderung zurück. Unten würde funktionieren

import scrapy 
from scrapy.utils.response import open_in_browser 

class univSpider(scrapy.Spider): 
    name = "univ" 
    start_urls = ["http://appl103.lsu.edu/dir003.nsf/(NoteID)/5903C096337C2AA28625819E0038E3E4?OpenDocument"] 

    def parse(self, response): 
     yield FormRequest.from_response(response, formname="_DIRVNAM", formdata={"LastName": "Lalwani"},callback = self.search_result) 

    def search_result(self, response): 
     open_in_browser(response) 
     print(response.body) 
+0

Vielen Dank. Ich habe 2 Fragen. F1: Wo finden Sie die Formulardaten? Mein Freund hat mir gezeigt, dass ich es irgendwo im Netzwerk finden kann. Aber ich kann es auf dieser Website nicht finden. Q2: open_in_browser (Antwort), ist es nur um mir zu zeigen, wie es funktioniert? Ich brauche den Browser beim Crawlen nicht wirklich zu öffnen. – user8314628

+0

Q1, ja ich habe gerade in Firefox eingecheckt JS deaktiviert und es hat funktioniert, was bedeutet, dass die ID wird nicht berechnet, aber da auf dem Formular. F2: Ja das war nur, um Ihnen die Antwort zu zeigen, Sie werden es nicht als solches verwenden. –

+0

F1: Ich habe Chrome verwendet, kann aber das Formular nicht finden. Vielleicht sollte ich Firefox ausprobieren :) – user8314628

Verwandte Themen