在scrapy python中使用splash通过JavaScript实现下一页?[关闭]

wfypjpf4  于 2023-06-23  发布在  Python
关注(0)|答案(1)|浏览(103)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

8年前关闭。
Improve this question
实际上,我的意图是从"href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT')"实现Next,所以我以[this url][1]为例。从这个网址,你可以看到页面末尾的下一个,所以如果你观察到的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",我的意思是没有,谁能告诉我如何通过""href="javascript:submitAction_win0(document.win0,'HRS_APPL_WRK_HRS_LST_NEXT')""函数实现Next,为什么结果是空的。我观察到一些wierd在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>']
7gs2gvoe

7gs2gvoe1#

Scrapy本身不支持java脚本调用。但是有几种机制可以用于面向java-script。

  1. Splash- Splash是一个带有HTTP API的JavaScript渲染服务。它是一个轻量级的浏览器,带有API,使用Twisted和QT在Python中实现
  2. Scrapyjs-此库通过两种不同的机制提供Scrapy-Javascript集成:Scrapy下载处理程序,Scrapy下载器中间件
  3. SpiderMonkey-从Python执行任意JavaScript代码。允许您在JavaScript VM中引用任意Python对象和函数
  4. spynner- Spynner是Python的有状态编程Web浏览器模块。它基于PyQT和WebKit。它支持JavaScript, AJAX 和其他所有技术!WebKit能够处理(Flash,SVG,...)。Spynner利用了JQuery。一个强大的JavaScript库,使与页面和事件模拟的交互变得非常容易

相关问题