Delphi:从网页获取正确的来源

时间:2012-10-19 05:04:42

标签: html delphi web-scraping user-agent

我正在使用Delphi,而我正试图从网页上获取源代码。

我的问题是,当我使用Indy(idHttp)或Clever Components(clHttp)而不是IE和/或Google Chrome时,我会得到不同的源代码。

有什么方法可以用Delphi检索网页源,与浏览器显示的方式完全相同?

2 个答案:

答案 0 :(得分:8)

这可能是因为控件正在发送用户代理字符串,这与IE或Chrome使用的字符串不同。换句话说,SERVER发回的信息源不同于IE或Chrome。

例如,在TIdDHTTP中,设置:

Request.Accept=*/*
Request.CacheControl=no-cache
Request.Connection=Keep-Alive
Request.ContentType=application/x-www-form-urlencoded
Request.AcceptEncoding=gzip, deflate
Request.UserAgent=Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Request.Host=(web site name)

答案 1 :(得分:3)

基本上,从组件请求页面的行为与浏览器相同。只有浏览器可以执行多个请求和其他活动,例如。可能会更改DOM的JavaScript。

尝试关闭JavaScript并再次进行比较。 如果您熟悉chrome开发人员工具,请检查第一个HTTP get的原始输入并进行比较。如果仍然不同,请修改您的请求,使其与Chrome请求相同。