1
我與WebHarvest合作,從需要在登錄一個網站抓取數據WebHarvest找不到響應頭
它的設置是這樣的:
1 =登錄頁面
頁2 =登錄驗證頁面
第3頁=統計頁面
在第2頁設置cookie。當監控第2頁與螢火蟲開我得到這些標題:
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Date Tue, 23 Oct 2012 18:25:12 GMT
Keep-Alive timeout=15, max=100
Server Apache/2.0.64 (Win32) JRun/4.0 SVN/1.3.2 DAV/2
Set-Cookie SESSION=hej123;expires=Thu, 16-Oct-2042 18:25:12 GMT;path=/
Transfer-Encoding chunked
調用同一個頁面WebHarvest我只得到這些頭時:
Date=Tue, 23 Oct 2012 18:31:51 GMT
Server=Apache/2.0.64 (Win32) JRun/4.0 SVN/1.3.2 DAV/2
Transfer-Encoding=chunked
Content-Type=text/html; charset=UTF-8
看來,三個頭(設置Cookie ,Connection和Keep-Alive)都沒有被WebHarvest找到。第1頁,第2頁和第3頁是dummys,所以沒有進行實際驗證。該Cookie總是在服務器端設置頁面2.
這裏是WebHarvest代碼我目前正在使用:
<var-def name="content2">
<html-to-xml>
<http method="post" url="http://myurl.com/page2.cfm">
<http-param name="Login">sigge</http-param>
<http-param name="Password">hej123</http-param>
<http-param name="doLogin">Logga in</http-param>
<loop item="currField">
<list>
<var name="ctxtNewInputs" />
</list>
<body>
<script><![CDATA[
item = (NvPair) currField.getWrappedObject();
SetContextVar("itemName", item.name);
SetContextVar("itemValue", item.value);
]]></script>
<http-param name="${item.name}"><var name="itemValue" /></http-param>
</body>
</loop>
<script><![CDATA[
String keys="";
for(int i=0;i<http.headers.length;i++) {
keys+=(http.headers[i].key + "=" + http.headers[i].value +"\n---\n");
}
SetContextVar("myCookie", keys);
]]></script>
<file action="write" path="c:/kaka.txt">
<var name="myCookie"/>
</file>
</http>
</html-to-xml>
</var-def>
編輯:檢查時,我注意到該cookie在WebHarvest設置,即使 無法以編程方式找到http標頭。是否有可能使用某些響應標頭?
有沒有人知道解決這個問題?
謝謝你,最好的問候, SiggeLund