在抓取网站之前,我已经阅读了登录网站的教程,但它就是不起作用。我构造了一个HttpIdentity对象,将其添加到Identities集合中,并处理了请求,但是返回到scrape的页面仍然是登录页面。在他们的网站和文档中没有太多关于这方面的内容。下面是我的代码:
var identity = new HttpIdentity
{
UseCookies = true,
NetworkUsername = _username,
NetworkPassword = _password
};
Identities.Add(identity);
Request(_uri, Parse, identity);在解析方法中,我得到一个Response对象,返回的状态码为200,Response的"WasSuccessful“属性为"true”。看起来我应该被重定向到我试图访问的页面,但我只是得到了登录的html。
我是不是漏掉了什么?
发布于 2019-04-12 01:19:21
我无法使用Iron Web Scraper找到解决方案,但我可以使用ScrapySharp,这是一个免费的实用程序,所以它成功了。ScrapySharp能够在一定程度上模仿浏览器,因此导航和提交表单非常容易。
var browser = new ScrapingBrowser();
var homepage = browser.NavigateToPage(_Uri); // login Uri
var form = homepage.FindForm("login"); // get form by name
form.Method = HttpVerb.Post;
form["username"] = "my_username"; // get form fields by id
form["password"] = "my_password";
var resultPage = form.Submit(); // login
var loggedInPage = browser.NavigateToPage(new Uri("https://path.to.target.page"));就是这样。我不确定Iron Web Scraper有什么问题。也许在登录页面上有一些ajax。在任何情况下,这段代码现在都可以为我工作了。
https://stackoverflow.com/questions/55621221
复制相似问题