【问题标题】:how to send response to httpwebrequest for Web scraping如何向 httpwebrequest 发送响应以进行 Web 抓取
【发布时间】:2017-07-10 05:45:19
【问题描述】:

您好,我尝试从网页中抓取数据,但这是我的问题:
当我使用httpwebrequest 连接到服务器时,服务器将标头设置为Connection: Keep-Alive,然后请求加载验证码网页(在实际网页验证码加载ajax)然后在解决验证码后返回最后一个请求的答案并最终加载数据

webpage -> captcha -> Solve -> Back to first web page -> show data

我该怎么做?

  • 使用webrequest 向网页发送请求
  • request 获取cookie 信息
  • 加载captcha page 并获取catpcha pic
  • send captcha pic 到其他站点以获取 solveget captcha answer
  • 发送captcha answerwebrequestget cookie and session id
  • 发送new webrequestcookie and session idload data

总是 -> 失败,我认为这是因为 Connection: Keep-Alive 所以我该如何解决这个问题?
而且当我尝试在 webbrowse 中加载页面时,我不知道为什么,但是在任何浏览器中,控制页面都无法正确加载,所以我无法使用浏览器

更新
我的问题:
如何在GetResponse()之后将答案(再次发布数据)发送到httpwebrequest并保持在线(不使用新连接)

【问题讨论】:

  • 请尝试描述一个您无法解决的问题。例如如何在没有keep-alive 属性的情况下获得连接。看看how to ask
  • 好的,更新了!现在你怎么看?

标签: php cookies web-scraping httpwebrequest keep-alive


【解决方案1】:

如果您对keep-alive 有疑问,请尝试禁用它:HttpWebRequest.KeepAlive Property

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.contoso.com");

req.KeepAlive = false;

【讨论】:

  • 感谢您的回答,但是如果您了解我的问题,您就知道我的所有问题都与 httpwebreq 断开连接并打开另一个问题,所以我认为这不起作用,您认为吗?
猜你喜欢
  • 2011-01-15
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 2017-05-21
  • 2018-09-28
  • 1970-01-01
相关资源
最近更新 更多