2017-05-09 51 views
0

我試圖從本網站中刪除所有新聞項目。他們沒有在源代碼中顯示:http://www.uvm.dk/aktuelt使用Python發佈API搜索

我試過使用Firefox'LIVE Http Headers和Chrome的開發者工具,但仍然無法弄清楚在幕後發生了什麼。我敢肯定,這很簡單:-)

我有這些信息,但我如何使用它們來刮擦想要的新聞?

http://www.uvm.dk/api/search

請求方法:POST

連接:保持活躍 的PageId = 8938bc1b-a673-4513-80d1-e1714ca93d7c &期限= &年份%5B%5D = 2017年& WorkAreaIds = & SubjectIds = & TemplateIds = & NewsListIds%5B%5D = Emner & TimeSearch%5BEvaluation%5D = & FlagSearch%5BEvaluation%5D = Alle & DepartmentNames = &英皇= & RootItems = &語言= DA &每頁= 10 &頁= 1

誰能幫助?

+0

也許發佈一些代碼? – user1120808

回答

0

不是一個直接的答案,但一些提示。

你的livehttpheaders方法是一個很好的方法。加載主頁前打開側欄,全部清除。然後加載主頁和一篇文章。通常會有大量的http請求,因爲圖像,css和js。但是你可以找到少數有用的東西。通常首先是主頁,下面的某個地方是文章主頁。另一個有趣的是當你點擊下一頁時。

我喜歡解耦下載(HTTP)和抓取(HTML或JSON等)。 我用第一個腳本下載到一個文件,並用第二個腳本刪除。 首先,因爲我希望能夠調整抓取而無需一次又一次下載。其次,因爲我更喜歡使用bash + curl來下載和python + lxml來報廢。如果我需要從下載中獲取信息,我的scraping腳本會在控制檯上輸出它。

+0

感謝您的回覆。我再次嘗試了LIVE Http Headers,現在我明白了:-)事實證明,我忘了POST中需要的參數之一。 結果看起來像這樣: 導入請求 PARAMS = { 'xxx' 的: 'xxx' 的, 'xxx' 的: 'xxx' 的,等} R = requests.post(「HTTP://www.uvm .dk/api/search「,data = params) print(r.text) – bib