如何抓取所有互动均通过postbacks进行的ASP.NET网站?

2024-10-01 15:37:56 发布

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

使用Python,我为一个ASP.NET网站(特别是Jenzabar课程搜索portlet)将创建一个新的会话,加载第一个搜索页面,然后通过发回所需字段来模拟搜索。但是,有些东西改变了,我不知道是什么,现在我得到了对所有东西的http500响应。浏览器的POST数据中没有我能看到的新字段。在

理想情况下,我想知道如何修复我自己的scraper,但是在StackOverflow上,如果不包含大量特定的上下文,这可能是很困难的,所以我想知道是否有一种方法可以将页面视为一个黑匣子,在我想要的回发链接上触发click事件,然后得到结果的HTML。在

我在这里看到了一些关于使用JavaScript进行抓取的答案,但它们主要集中在等待JavaScript加载,然后返回页面的标准化表示。我想模拟浏览器实际点击链接并按照相同的路径执行请求。在


Tags: 数据net网站链接浏览器页面javascriptpost
3条回答

在不知道任何细节的情况下,我的预感是你在使用一个硬编码的会话id,而web服务器的app domain回收并创建了新的加密/解密密钥,使得你的硬编码会话id(用旧密钥加密)变得毫无用处。在

你可以尝试使用Firebugs NET标签来监视所有的请求,手动浏览,然后将你生成的请求与你的scraper正在生成的请求进行区分。在

如果您只是试图模拟加载,您可能需要检查类似selenium的东西,它通过浏览器运行并像浏览器一样处理回发。在

相关问题 更多 >

    热门问题