作者tedd15550325 (天行者)
看板PHP
标题[请益]
时间Sun Oct 23 22:31:57 2011
http://scbx.mssm.edu/sitehound/sitehound-web/Input.html
上面这个网址是我要蒐集查询结果的网站
只需要填入PDB ID,其他都是用预设的即可
每丢一次query出去,要等5分钟看看伺服器是不是有计算出结果
如果有就将结果的网页内容储存下来,没有就进行下一个query
而我大概有将近800个query需要丢给这个网站
想藉由撰写一个自动post并撷取结果的php程式来抓结果
但基於我是个新手,只会php最基本的变数回圈那些
根本不会什麽curl函式,拜过谷哥大神後
只知道有一堆参数可以下
但是光看字面上的解释我根本搞不清楚该怎麽应用...
目前大概卡在post参数丢出去後,抓不到结果的那个网页
我猜大概是因为我只抓submit後的第一个网页内容
但他是网页一直转来转去,所以实在不知道要怎样才能抓到最後一个网页的内容
以下是我从google版改编後的程式码:
(my388apo.txt是一份纪录着一堆PDB ID参数的文件,执行後有结果的参数例如 "1lf4" )
<?php
ob_implicit_flush();
$inputFile = fopen("my388apo.txt", "r");
while (!feof($inputFile))
{
//读取pdbid
$inputpdbid = fgetss($inputFile);
//基本参数设定
set_time_limit(0);
$ch = curl_init();
$URL="
http://scbx.mssm.edu/sitehound/sitehound-web/cgi/wait1.cgi/";
//post要丢的参数
$argument = "pdb_id=".trim($inputpdbid)."&probe=CMET"."&algorithm=a";
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_POST, 1);
//回传为字串
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $argument);
$data = curl_exec($ch);
print ( "data = $data <br />" );
}
?>
嗯...印出来的结果都是Server error....
拜托各位好心的大大~~给点提示吧!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.88.90
1F:→ dannyst:他可能有检查user agent,最好设一下 10/30 12:53