2013-01-07 137 views

回答

1

真正有兩個頭腦約什回答這個問題,因爲它似乎非常關閉話題。

我發現的最簡單的方法是在chrome中打開頁面,加載開發人員工具,重新加載頁面,然後查找請求數據的POST請求,然後可以使用Curl僞造該請求,然後提取數據來自它返回的XML文件。

遠比從呈現的網格中抓取它容易。

Request URL:http://sancharsoft.bsnl.co.in/auction/vacant_nos/ch/fancy_nos_load.asp 
Request Method:POST 
Status Code:200 OK 
Request Headersview source 
Accept:application/xml, text/xml, */*; q=0.01 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:no-cache 
Connection:keep-alive 
Content-Length:65 
Content-Type:application/x-www-form-urlencoded 
Cookie:ASPSESSIONIDSARRQQBT=EALMIDLAPLDHCEKDHIOKHHFG; PHPSESSID=88mr7i6gqis9u3ece750shjsg4 
Host:sancharsoft.bsnl.co.in 
Origin:http://sancharsoft.bsnl.co.in 
Pragma:no-cache 
Referer:http://sancharsoft.bsnl.co.in/auction/vacant_nos/ch/gsm_no_choice.asp 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.101 Safari/537.11 
X-Requested-With:XMLHttpRequest 
Form Dataview URL encoded 
_search:false 
nd:1357565939966 
rows:50 
page:1 
sidx:gsmno 
sord:asc 
Response Headersview source 
Cache-Control:private 
Content-Length:4605 
Content-Type:text/xml; Charset=utf-8 
Date:Mon, 07 Jan 2013 13:38:59 GMT 
Server:Microsoft-IIS/7.0 
X-Powered-By:ASP.NET 

返回

<?xml version='1.0' encoding='utf-8'?><rows><page>1</page><total>48</total><records>2374</records><row id='9444011515'><cell><![CDATA[9444011515]]></cell><cell><![CDATA[843]]></cell></row><row id='9444018222'><cell><![CDATA[9444018222]]></cell><cell><![CDATA[843]]></cell></row><row id='9444026222'><cell><![CDATA[9444026222]]></cell><cell><![CDATA[843]]></cell></row></rows> 

所以..要與捲曲做..

curl -d "_search=false&nd=1357565939966&rows=50&page=1&sidx=gsmno&sord=asc" http://sancharsoft.bsnl.co.in/auction/vacant_nos/ch/fancy_nos_load.asp 

正如你所看到的,我複製了確切的瀏覽器請求到捲曲-d " "數據符。

事實證明,是的,你實際上可以改變它,以便「rows = 50」變成「rows = 5000」,並且你得到預期的buttload數據。 <rows><page>1</page><total>1</total><records>2368</records>

實際上,剛剛超過2300行,但思想起作用。

+0

謝謝湯姆。但我想要所有的數字。網格底部有「查看XXX XXX的1 - 50」之類的內容。熱退休所有XXX XXX號碼。 – Chandru

+0

嘗試發佈頁面:2/3/4 ..等在捲曲請求.. –

+0

湯姆我不熟悉CURL命令。你能否爲我提供上述要求的命令。我在HTTP POST中看到「rows:50」,我想我可以像「rows:5000」一樣增加行值,以獲取所有數據而不是頁面導航。您的建議是什麼? – Chandru