[問題] 爬蟲時href有空格

看板Python作者 (夏天一到就凸顯自己很魯)時間8年前 (2018/01/15 21:15), 8年前編輯推噓0(0024)
留言24則, 6人參與, 8年前最新討論串1/1
小弟爬蟲新手想請教各位前輩 目前有一個專題是要爬518人力銀行的徵才網頁 小弟目前是用beautifulsoup爬列表頁裡面的Anchor 但是518連結內文檔的Anchor href有空白像這樣 https://www.518.com.tw/外商線上娛樂集團 徵聘 JAVA Developer 2名 工作地點 菲律賓-其它亞洲-東南亞-job-1471387.html?kw=java&pi=1 導致使用 for link in soup.find_all('a'): print(link.get('href')) 爬出來的href只到https://www.518.com.tw/外商線上娛樂集團 空格後面的變成純字串造成爬出來的href連到錯誤的網頁 所以想請問此情況要如何解決讓空格後面的內容也可以放進去href? 感謝各位前輩幫忙~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.150.143 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1516022128.A.3FE.html ※ 編輯: keroromoa (114.25.150.143), 01/15/2018 21:24:43

01/15 22:26, 8年前 , 1F
regex
01/15 22:26, 1F

01/16 06:58, 8年前 , 2F
1. 如果格式正確,就算有空白也不會影響抓到的attr內容
01/16 06:58, 2F

01/16 06:59, 8年前 , 3F
01/16 06:59, 3F

01/16 07:00, 8年前 , 4F
2. 我自己對518發請求在一般列表可以抓到完整url
01/16 07:00, 4F

01/16 07:01, 8年前 , 5F
綜上所述,你可能要看一下是不是你別的處理有截斷輸入
01/16 07:01, 5F
https://imgur.com/3q1Z7wn
不好意思,我表達的不夠清楚, 因為我是在jupyter notebook操作,所以希望抓下來的URL能夠保有連結的功能, 不過出來的URL還是一樣連結只到空格前,空格後變成純字串, 這樣來看是不是jupyter notebook在塞URL只要遇到空格都會出現同樣的狀況?感謝~ ※ 編輯: keroromoa (118.165.209.19), 01/16/2018 20:28:03

01/16 22:04, 8年前 , 6F
所以你爬出來的href是正確的,只是在jupyter的print結果
01/16 22:04, 6F

01/16 22:04, 8年前 , 7F
,顯示的超連結不符合預期,直接點下去無法連結到你要的
01/16 22:04, 7F

01/16 22:04, 8年前 , 8F
網頁。是這樣嗎?
01/16 22:04, 8F

01/16 22:26, 8年前 , 9F
是,我這要求是不是太龜毛了Orz
01/16 22:26, 9F

01/16 22:41, 8年前 , 10F
因為規格上url是不能有空白,實際上動作時會被encode
01/16 22:41, 10F

01/16 22:42, 8年前 , 11F
這樣切是可以理解,不過剛剛試了markdown外掛也不行
01/16 22:42, 11F

01/16 22:43, 8年前 , 12F
他不會照著變數去render.....這就很煩,不過還是可以解
01/16 22:43, 12F

01/16 22:43, 8年前 , 13F
01/16 22:43, 13F

01/16 22:44, 8年前 , 14F
01/16 22:44, 14F

01/16 22:44, 8年前 , 15F
可是為何需要在這裡顯示為超連結呢?如果是我的話,舉例
01/16 22:44, 15F

01/16 22:44, 8年前 , 16F
來說我想把資料抓了之後整理到excel檔,那對我來說print
01/16 22:44, 16F

01/16 22:44, 8年前 , 17F
出來的結果怎麼呈現並不重要。
01/16 22:44, 17F

01/16 22:46, 8年前 , 18F
直接叫他吐html出來
01/16 22:46, 18F

01/17 00:26, 8年前 , 19F
把空格改成%20試試看
01/17 00:26, 19F

01/17 11:31, 8年前 , 20F
直接在 print 之前 urlencode 一發不行嗎
01/17 11:31, 20F

01/17 11:54, 8年前 , 21F
我覺得要考慮schema很麻煩加encode後不好讀就沒有保留
01/17 11:54, 21F

01/17 11:55, 8年前 , 22F
在out上的意義,所以如果真要作還是會用_repr_html_
01/17 11:55, 22F

01/19 08:50, 8年前 , 23F
最後是用先將所有anchor放進陣列再用特定字篩選出想要的anchor做成新的陣列 把新的陣列用for迴圈放進_repr_html_了, 只是包成_main.anchor_物件就沒辦法直接用陣列顯示出超連結, 必須要加index才能一個個把超連結顯示出,不過至少是能用的超連結了~感謝~ https://imgur.com/aagtHEz
https://imgur.com/8r7Jwg5
※ 編輯: keroromoa (140.115.236.203), 01/21/2018 18:35:09

01/24 14:03, 8年前 , 24F
01/24 14:03, 24F
文章代碼(AID): #1QNAbmF- (Python)