Asp.net AngleSharp-如何浏览链接触发表单提交的网站
我正在尝试从该网站的多个搜索结果页面中刮取“阅读更多”链接: 并没有指向搜索结果任何特定页面的规范链接。当您导航到第2页时,URL将保持不变 在检查底层HTML和JavaScript之后,我看到分页链接在单击时触发JavaScript函数Asp.net AngleSharp-如何浏览链接触发表单提交的网站,asp.net,web-scraping,anglesharp,Asp.net,Web Scraping,Anglesharp,我正在尝试从该网站的多个搜索结果页面中刮取“阅读更多”链接: 并没有指向搜索结果任何特定页面的规范链接。当您导航到第2页时,URL将保持不变 在检查底层HTML和JavaScript之后,我看到分页链接在单击时触发JavaScript函数 下面是调用的函数: <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['form1']; if (!theForm) { theFor
下面是调用的函数:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
//
因此,通过单击“下一步”,浏览器将重定向到相同的URL,但内容不同
单击“下一步”按钮后,我想从下一页中删除“阅读更多”链接。由于单击“下一步”按钮实际上会提交表单并重新加载页面,因此如何使用AngleSharp进行此操作
到目前为止,我的答案如下:这里有两个可能的答案:
文档
实例文档
):
希望有帮助
Task SubmitForm(IDocument document, string eventTarget, string eventArgument)
{
var theForm = document.Forms["form1"];
if (!theForm) {
throw new InvalidOperationException("The form cannot be found!");
}
void SetElement(string name, string value)
{
var element = theForm.Elements[name] as IHtmlInputElement;
if (element != null)
{
element.value = value;
}
}
SetValue("__EVENTTARGET", eventTarget);
SetValue("__EVENTARGUMENT", eventArgument);
return theForm.SubmitAsync();
}