看板 Python 關於我們 聯絡資訊
  各位前輩好,最近因為一點需求在撰寫爬蟲程式。先是參照了一些網路資源試作了一些常見網站(如高鐵)的爬蟲,雖然也碰上不少問題但都還算順利解決。   近期在整理某些領域的國內論文,因此花了不少時間在「臺灣博碩士論文知識加值系統」裡頭,想說能不能用爬蟲的方式,蒐集論文的基本資料再來篩選,但碰上了一個問題。   在用以前的經驗來撰寫爬蟲程式時,總會碰上重新導向的語法:「<META HTTP-EQUIV="Refresh" CONTENT="0; ……」,查了一些資料後發現requests.__部分有allow_redirects的參數可以使用,但就算設置其為False也沒辦法讀到東西。應該說,貌似讀到的東西也就只有那段重新導向的語法(或者是我程式上有大問題)。   後續也Google了相關的資料,但還是沒能解決這個問題,只好來此向各位詢問,希望能獲得一些指引或解答。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.106.248 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1496248868.A.8BE.html
kenduest: meta 那算是 html 檔案內容組成了,不是 requests 06/01 01:38
kenduest: 本身處理的範圍。你需要的是解析若有這段 meta 06/01 01:38
kenduest: 內容抓出請求的 url= 後面指定的網址 06/01 01:39
kenduest: 然後把抓出來的 url 丟給 requests.get 重抓內容處理 06/01 01:40
kenduest: 要判斷有無這類 meta 語法一般可以用 BeautifulSoup 06/01 01:41
kenduest: 解析找這類內容,有找到拆解找出 url 網址拿來用 06/01 01:41
kenduest: requests 內所謂 allow_redirects 是說一般的 http 06/01 01:42
kenduest: 請求對方回應 301, 302 這類回應代碼時候,依據 06/01 01:43
kenduest: header 內 Location 欄位指定的 url 來進行連結存取 06/01 01:43
  謝謝指點!   剛剛改了一下,使用soup.find("meta")得出了其內容並擷取出URL=之後的網址,用該網址重新進行requests,但仍然是碰到相同的情況……得出的結果與首次的結果相同。   兩次均是得出:   <META HTTP-EQUIV="Refresh" CONTENT="0; URL=/cgi-bin/gs32/gsweb.cgi/login?o=dwebmge">   問題仍然無法解決Orz
kenduest: 後續要登入啊 說是另外一個新的處理議題 06/01 09:31
  好的,我再試試。想說一般網頁不用登入就能查詢就沒注意到了。   要開始試的同時發現登入有驗證碼,看來短時間以我的功力有點困難 Orz ※ 編輯: jakeasa123 (140.138.152.2), 06/01/2017 12:52:16
zerof: 試試 selenium 06/01 13:17
salmon12706: 工研院人工智慧課程推薦https://reurl.cc/4RDRaK 06/29 16:27