Я хочу SCRAPY сканировать страницы, где переходить к следующей ссылке выглядит следующим образом:Как использовать CrawlSpider из scrapy, чтобы щелкнуть ссылку с javascript onclick?
<a href="#" onclick="return gotoPage('2');"> Next </a>
Будет Scrapy иметь возможность интерпретировать яваскрипт кода этого?
С LiveHTTPHeaders расширения я обнаружил, что нажав Далее генерирует POST с действительно огромный кусок «мусора», начиная, как это:
encoded_session_hidden_map=H4sIAAAAAAAAALWZXWwj1RXHJ9n
Я пытаюсь построить мой паук на CrawlSpider
класса, но я не могу понять, как кодировать его с BaseSpider
я использовал метод parse()
обрабатывать первый URL, который случается быть формой Войти, где я сделал POST с:
def logon(self, response):
login_form_data={ 'email': '[email protected]', 'password': 'mypass22', 'action': 'sign-in' }
return [FormRequest.from_response(response, formnumber=0, formdata=login_form_data, callback=self.submit_next)]
И затем я определил submit_next(), чтобы сказать, что делать дальше. Я не могу понять, как сообщить CrawlSpider, какой метод использовать по первому URL?
Все запросы в моем сканировании, кроме первого, являются запросами POST. Они чередуют два типа запросов: вставка некоторых данных и нажатие «Далее» для перехода на следующую страницу.
Дайте мне еще один контекст, scrapy не может интерпретировать javascript, но вы можете имитировать сообщение POST, которое отправляет javascript, если вы можете найти это (encoded_session_hidden_map) как некоторое скрытое поле формы или что-то. – Joshkunz
Попробуйте PhantomJS .. –