Достижение следующей страницы через javascript в scrapy python с заставкой?

На самом деле мое намерение состоит в том, чтобы добиться следующего от "href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT')", поэтому просто для примера я беру [этот URL] [1]. Из этого URL-адреса вы можете увидеть «Далее» в конце страницы, поэтому, если вы заметите в html, что они написаны через href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT'), который имеет теги href как #, я просто пытаюсь собрать эти теги href, даже если они #.

def parse(self,response):
        selector = Selector(response)
        links = []
        for link in selector.css('span.PSEDITBOX_DISPONLY').re('.*>(\d+)<.*'):
		#intjid = selector.css('span.PSEDITBOX_DISPONLY').re('.*>(\d+)<.*')
                abc = 'xxxx'
                #print abc
		yield Request(abc,callback=self.parse_listing_page,dont_filter=True)
                          #meta={"use_splash": False}
                         # ) 

        nav_page = selector.css('div#win0divHRS_APPL_WRK_HRS_LST_NEXT a').extract()
        print nav_page
	for nav_page in nav_page:
       
     ## To pass the url to parse function
                yield Request(urljoin('xxx',nav_page),self.parse,dont_filter=True)

Когда я запускаю приведенный выше код, я получаю результат как " HTTP status code is not handled or not allowed", я имею в виду ни одного, может ли кто-нибудь сказать мне, как достичь Next с помощью этих функций ""href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT')"" и почему результат пуст. Я наблюдаю какую-то странность в html, например, одна из страниц в Next имеет тег привязки как "<a id="HRS_APPL_WRK_HRS_LST_NEXT" class="PSHYPERLINK" href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT');" tabindex="74" ptlinktgt="pt_replace" name="HRS_APPL_WRK_HRS_LST_NEXT"></a>"

заранее спасибо

выход :

[u'<a name="HRS_APPL_WRK_HRS_LST_NEXT" id="HRS_APPL_WRK_HRS_LST_NEXT" ptlinktgt="pt_replace" tabindex="74" href="javascript:submitAction_win0(document.win0,\'HRS_APPL_WRK_HRS_LST_NEXT\');" class="PSHYPERLINK">Next</a>']


person Community    schedule 20.11.2014    source источник
comment
Это возможная копия (stackoverflow.com/questions/26906141/)   -  person Nima Soroush    schedule 20.11.2014
comment
можете ли вы предоставить свой полный код паука .py? Ошибка означает, что handle_httpstatus_list не настроен для обработки HTTP-статуса страницы, которую вы вызываете по запросу.   -  person Nima Soroush    schedule 20.11.2014
comment
Я извлек все доступные данные для первой страницы, но возникла проблема с итерацией следующей страницы. пожалуйста, дайте мне знать, как это сделать.   -  person    schedule 21.11.2014


Ответы (1)


Scrapy не поддерживает вызов java-скрипта сам по себе. Но есть пара механизмов, которые можно использовать для работы с java-скриптом.

  1. Splash. Splash – это служба рендеринга javascript с HTTP API. Это легкий браузер с HTTP API, реализованный на Python с использованием Twisted и QT.
  2. Scrapyjs. Эта библиотека обеспечивает интеграцию Scrapy-Javascript с помощью двух разных механизмов: обработчик загрузки Scrapy и промежуточное ПО загрузчика Scrapy.
  3. SpiderMonkey — выполнение произвольного кода JavaScript из Python. Позволяет ссылаться на произвольные объекты и функции Python в виртуальной машине JavaScript.
  4. spynner – Spynner представляет собой программный модуль веб-браузера с отслеживанием состояния для Python. Он основан на PyQT и WebKit. Он поддерживает Javascript, AJAX и любую другую технологию, с которой может работать !WebKit (Flash, SVG, ...). Spynner использует преимущества JQuery. мощная библиотека Javascript, которая упрощает взаимодействие со страницами и моделирование событий
person Nima Soroush    schedule 20.11.2014