Niedawno uczyłem się Pythona i wkładam rękę w tworzenie skrobaka internetowego. To nic nadzwyczajnego; jej jedynym celem jest pobranie danych z witryny bukmacherskiej i umieszczenie ich w programie Excel.
Większość problemów jest do rozwiązania i mam niezły bałagan. Jednak napotykam ogromną przeszkodę w jednym problemie. Jeśli witryna ładuje tabelę koni i podaje aktualne ceny zakładów, informacji tych nie ma w żadnym pliku źródłowym. Wskazówka jest taka, że te dane są czasami na żywo, a liczby są oczywiście aktualizowane z jakiegoś zdalnego serwera. HTML na moim komputerze ma po prostu dziurę, w której ich serwery przepychają wszystkie interesujące dane, których potrzebuję.
Teraz moje doświadczenie z dynamiczną zawartością sieciową jest niewielkie, więc mam problem ze zrozumieniem.
Myślę, że kluczem jest Java lub Javascript, często się to pojawia.
Skrobak to po prostu porównywarka kursów. Niektóre witryny mają interfejsy API, ale potrzebuję tego dla tych, które ich nie mają. Używam biblioteki scrapy w Pythonie 2.7
Przepraszam, jeśli to pytanie jest zbyt otwarte. Krótko mówiąc, moje pytanie brzmi: w jaki sposób można wykorzystać scrapy do zeskrobania tych dynamicznych danych, aby móc ich użyć? Więc mogę zeskrobać dane dotyczące kursów bukmacherskich w czasie rzeczywistym?
Firefox
rozszerzenia, takie jak httpFox
lub, liveHttpHeaders
i załaduj stronę, która używa żądania AJAX. Scrapy nie identyfikuje automatycznie żądań Ajax, musisz ręcznie wyszukać odpowiedni adres URL Ajax, a następnie wysłać żądanie z tym żądaniem.