2017-03-24 47 views
0

學術原因,我需要刮朝鮮字典(在已經告知自己有關著作權有關的問題),這「實際上是」應該是很簡單的:該網站是由PHP腳本,返回其只是在每個字典條目的URL採用升序編號爲:使用刮字典捲曲

uriminzokkiri.com/uri_foreign/dic/index.php?page=1

,最後一個條目位於:

我們民族之間。 com/uri_foreign/dic/index.php?page = 313372

所以基本上我會假設最簡單的方法是編寫一個簡單的shell腳本,其中使用循環構造來增加條目數量,另外檢查站點是否成功下載,因爲連接不好,所以它重複試圖下載網站,直到它成功(也是微不足道的)。

但後來我試圖下載一個網站包含一個條目來測試,這失敗了。該網站使用會話cookie,因此我首先使用「-c」參數將相應的cookie保存在文件中,然後使用「-v」(詳細)和「-b」(從文件)參數,產生以下輸出:

curl output

這些是請求和響應頭如由螢火蟲被顯示: Request/Response headers

我還試圖通過使用所有這些請求報頭中的「 -H「參數,但是這也不起作用。

有人開始編寫一個基於Python的刮刮本字典,但如果這可以用一個簡單的bash腳本來實現,那麼這看起來有點像矯枉過正我。

有誰知道爲什麼我那麼遠的辦法不起作用,這到底是怎麼實現?

提前很多感謝和親切的問候

+0

我使用(這順便說一句,應在問題已經很好的共享),你在共享引擎收錄的命令,並將其在獲得頁面的工作就好了。現在你所需要做的就是使用某種HTML解析器或正則表達式來查找你需要的條目(Python聽起來不像是一種矯枉過正的事情了嗎?) – apokryfos

+0

對不起,由於某種奇怪的原因,我縮短了URL錯誤:必須添加「&ID = 1」(對於第一個條目),如在Firebug標題中可以看到的,因此它是http://uriminzokkiri.com/uri_foreign/dic/index.php?page=1&ID=1如果我在瀏覽器中輸入這個地址,則會返回一個包含該條目的網站,但爲了抓取它,我需要獲取[div#dic_desc_center](http://pasteboard.co/NmhG2WTbg)的內容。jpg)Firebug說:「get」或「set」屬於屬性,而[LenientThis]忽略,因爲「this」對象不正確。我怎麼能得到「dic_desc_center」/它指向哪裏?在此先感謝 – ipsecreloaded

回答

0

你可以把一些多個HTTP報頭,如:

  • 來源:女巫是你放棄原來的網站域名。
  • 用戶代理:女巫是你可以從互聯網上獲得的客戶端配置。

否則,你可以從你的瀏覽器代碼檢查得到的bash腳本捲曲然後將其轉換成PHP代碼。全部自動化並且在線存在。

+0

感謝您的提示。我已經試過傳遞每個由Firefox傳遞的HTTP頭,但沒有成功(起源,用戶代理,緩存,cookie等)。 PHP和DOM/DIV元素當然不是我的知識的一部分(我專門從事Linux管理和C/C++編程) - 站點必須從某處調用此DIV對象的內容,那麼是否無法追蹤此內容? – ipsecreloaded