Scrapy:next按钮使用javascrip

2024-05-16 03:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从这个网站上抓取http://saintbarnabas.hodesiq.com/joblist.asp?user_id= 我想把所有的RNs都放进去。。。我可以收集数据,但无法继续下一页 因为它的javascript。我试着阅读其他问题,但我不明白。这是我的密码

class MySpider(CrawlSpider):
    name = "commu"
    allowed_domains = ["saintbarnabas.hodesiq.com"]
    start_urls = ["http://saintbarnabas.hodesiq.com/joblist.asp?user_id=",
    ]
    rules = (Rule (SgmlLinkExtractor(allow=('\d+'),restrict_xpaths=('*'))
    , callback="parse_items", follow= True),
    )

下一步按钮显示为

^{pr2}$

这个分页真让我受不了。。。在


Tags: 数据comidhttp密码网站javascriptclass
1条回答
网友
1楼 · 发布于 2024-05-16 03:32:11

简而言之,您需要弄清楚Move('next')做了什么,并在代码中重新生成它。在

快速检查这些站点可以发现功能代码如下:

function Move(strIndicator)
{
    document.frm.move_indicator.value = strIndicator;
    document.frm.submit();
}

document.frm是名为“frm”的形式:

^{pr2}$

因此,基本上,您需要构建一个请求来对该表单执行POST,其中move_indicator值为'next'。这很容易通过使用FormRequest类(see the docs)来实现,如:

return FormRequest.from_response(response, formname="frm", 
                                 formdata={'move_indicator': 'next'})

这种技术在大多数情况下都有效。困难的部分是弄清楚javascript代码是什么,有时它可能会被混淆,并执行过于复杂的东西,只是为了避免被刮伤。在

相关问题 更多 >