Próbuję zeskrobać witrynę, która wymaga od użytkownika wprowadzenia wartości wyszukiwania i captcha. Mam funkcję rozpoznawania znaków optycznych (OCR) dla captcha, która udaje się w 33% przypadków. Ponieważ captcha są zawsze tekstem alfabetycznym, chcę ponownie załadować captcha, jeśli funkcja OCR zwraca znaki niealfabetyczne. Kiedy mam "słowo" tekstowe, chcę przesłać formularz wyszukiwania.Jak skonfigurować Scrapy do radzenia sobie z captcha
Wyniki powracają na tę samą stronę, a formularz jest gotowy do nowego wyszukiwania i nowego captcha. Muszę więc spłukać i powtarzać, dopóki nie wyczerpam moich wyszukiwanych słów.
Oto algorytm najwyższego poziomu:
- strona obciążenia początkowo
- Pobierz obraz captcha, uruchom go poprzez OCR
- Jeśli OCR nie wróci z tekstu tylko spowodować , odśwież captcha i powtórz ten krok.
- Prześlij formularz zapytania na stronie z wyszukiwanym hasłem i captcha
- Sprawdź odpowiedź, aby sprawdzić, czy captcha był prawidłowy
- Gdyby to było prawidłowe, zeskrobać dane
- Go do 2
Próbowałem za pomocą rurociągu dla uzyskania captcha, ale wtedy nie mam wartość składania formularza. Jeśli po prostu pobieram obraz bez przechodzenia przez framework, używając urllib lub czegoś takiego, plik cookie z sesją nie zostanie przesłany, więc sprawdzanie poprawności captcha na serwerze nie powiedzie się.
Jaki jest idealny sposób na wykonanie Scrapy?