亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標題:
獲取dict.cn時網頁得到的結果有些問題(已解決)
[打印本頁]
作者:
heixia108
時間:
2010-05-24 20:47
標題:
獲取dict.cn時網頁得到的結果有些問題(已解決)
本帖最后由 heixia108 于 2010-05-25 00:07 編輯
想寫個程序獲取dict.cn上對單詞的解釋
#!/usr/bin/perl
use strict;
use LWP::UserAgent;
use HTML::TreeBuilder;
my $url = "http://dict.cn/mini.php?q=hello";
my $ua = LWP::UserAgent->new;
my $response = $ua->get($url);
if ($response->is_success) {
print $response->decoded_content; # or whatever
}
else {
die $response->status_line;
}
復制代碼
結果打印的是 “正在加載<hello>的翻譯解釋”
我用httpwath看了下,原因是向 $url發(fā)送請求后 到 得到查詢結果(即"你好")之間會有一段延時,這期間它訪問了
http://dict.cn/ajax/dictcontent.php
等地址,所以得到的結果出錯了,有什么方法可以得到正確的結果嗎?
作者:
SNYH
時間:
2010-05-24 23:36
dict.cn
是用javascript 來獲得數(shù)據(jù)的
通過
POST http://dict.cn/ajax/dictcontent.php HTTP/1.1
Cookie: h=%2Fhello%2F; dictsid=13.138669254.2784563.152565
q=hello&s=2&t=1e92155c77e89768fd5b35d3e43691fb
復制代碼
通過 q s t 三個字段 post 到
http://dict.cn/ajax/dictcontent.php
返回的內容就好像是一個 json格式的數(shù)據(jù)吧
然后用javascript把這個json替換到 "正在加載.."
所以辦法有這么幾個
分析s t 字段 是什么... (t應該要根據(jù) 最開始 獲得的cookies的dictsid 字段算出來吧.... )
然后獲得json的數(shù)據(jù)格式(解釋內容都在里面了 不過還有一些html javascript代碼... 他把代碼當作數(shù)據(jù)返回的) 解析 json(這個比較容易了) 得到單詞的解釋....
-------------------------------------------------------
去google下 看有人分析了 dict.cn的格式沒...
-------------------------------------------------------
換個網站搞吧.... 比如google翻譯 也不錯的..
由于lwp不支持javascript 應該不可能直接通過lwp簡單的給地址就獲得結果滴....
作者:
SNYH
時間:
2010-05-24 23:37
http://dict.cn/mini.php?q=XXOO
這個地址是個 幌子.....
最終是
http://dict.cn/ajax/dictcontent.php
獲得地址
然后操作DOM 替換掉
http://dict.cn/mini.php?q=XXOO
里面"正在加載"的內容
作者:
heixia108
時間:
2010-05-25 00:06
謝謝,講得很詳細
~
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2