[問題] 爬蟲時href有空格

作者: keroromoa (發言要小心 避免踩到陳雷)   2018-01-15 21:15:24
小弟爬蟲新手想請教各位前輩
目前有一個專題是要爬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?
感謝各位前輩幫忙~
作者: vi000246 (Vi)   2018-01-15 22:26:00
regex
作者: tedwu2001   2018-01-16 06:58:00
1. 如果格式正確,就算有空白也不會影響抓到的attr內容ref: https://imgur.com/a/7UzIO2. 我自己對518發請求在一般列表可以抓到完整url綜上所述,你可能要看一下是不是你別的處理有截斷輸入
作者: olycats ( )   2018-01-16 22:04:00
所以你爬出來的href是正確的,只是在jupyter的print結果,顯示的超連結不符合預期,直接點下去無法連結到你要的網頁。是這樣嗎?
作者: keroromoa (發言要小心 避免踩到陳雷)   2018-01-16 22:26:00
是,我這要求是不是太龜毛了Orz
作者: tedwu2001   2018-01-16 22:41:00
因為規格上url是不能有空白,實際上動作時會被encode這樣切是可以理解,不過剛剛試了markdown外掛也不行他不會照著變數去render.....這就很煩,不過還是可以解ref: http://bit.ly/2FEnc0Jdemo: https://imgur.com/a/HLGsX
作者: olycats ( )   2018-01-16 22:44:00
可是為何需要在這裡顯示為超連結呢?如果是我的話,舉例來說我想把資料抓了之後整理到excel檔,那對我來說print出來的結果怎麼呈現並不重要。
作者: tedwu2001   2018-01-16 22:46:00
直接叫他吐html出來
作者: vi000246 (Vi)   2018-01-17 00:26:00
把空格改成%20試試看
作者: uranusjr (←這人是超級笨蛋)   2018-01-17 11:31:00
直接在 print 之前 urlencode 一發不行嗎
作者: tedwu2001   2018-01-17 11:54:00
我覺得要考慮schema很麻煩加encode後不好讀就沒有保留在out上的意義,所以如果真要作還是會用_repr_html_
作者: mybigfish (?)   2018-01-19 08:50:00
作者: tedwu2001   2018-01-24 14:03:00

Links booklink

Contact Us: admin [ a t ] ucptt.com