[問題] list中擷取特定文字

看板Python作者 (Niseel)時間5年前 (2019/01/04 08:47), 5年前編輯推噓7(705)
留言12則, 8人參與, 5年前最新討論串1/1
各位前輩好,小弟不才 最近自學python一個多月了 目前是玩爬蟲居多 因為最近爬到一個網域 分頁的格式都沒有規律 所以把文字匯入到list中 然後在擷取關鍵字 但因為index是必須完全符合才能抓到 我的問題是 比如我要抓 (費用)NT5,000 但我已經盡力篩選tag 清單輸出會像是 [‘XXXX’, ‘這門課(費用)NT5,000 目前優惠’, ‘AAAA’, .......] 我應該如何擷取 謝謝前輩學長姐指教 ———————我是補充—————— 本身非什麼資訊相關科系, 所以也是第一次自學語言 想說用爬蟲來幫我找課程(也順便練習python),說不定有機會可以去上上 就剛好看的這個網站 http://ewda.tw/ 中華民國職工福利發展協會 http://ewda.tw/modules/ewda_action/action.php?asn=3978 http://ewda.tw/modules/ewda_action/action.php?asn=3999 像這類型的分頁 不同分頁下抓費用沒問題 但是抓老師姓名就一直找不到共通解 目前是使用papple大提示的join() 再用位移值來抓字 暫時解決「能一次套用在不同分頁」擷取老師姓名 但假設老師姓名如果是兩個字或四個字 位移值就會失效 這樣是不是就只能使用re來判別呢 註:目前只會使用BS來解析,沒有要伸手要code,因為這樣我也不會進步,所以算是請教 一些提示,畢竟有時候google也不知道使用什麼關鍵字... 先謝謝各位熱心的前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.32.41 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1546562863.A.4E1.html

01/04 09:02, 5年前 , 1F
正規表示式
01/04 09:02, 1F

01/04 09:03, 5年前 , 2F
還是你只是要包含NT5000的element都要抓出來
01/04 09:03, 2F

01/04 09:08, 5年前 , 3F
import re 用法上網查
01/04 09:08, 3F
前輩們好,我忘記打清楚一點 就是這些分頁沒規則性,但(費用)(資訊) 這類的名稱字串是都會出現的 所以我希望能用一個方式來抓到所有分頁的這類名稱字串 所以只能用正規表達式就是了? 以上 謝謝 ※ 編輯: Niseel (27.247.32.41), 01/04/2019 09:13:57

01/04 10:29, 5年前 , 4F
re,不過這感覺用xpath篩text就好了吧
01/04 10:29, 4F
了解 我下班再研究一下XPATH的用法

01/04 11:43, 5年前 , 5F
(假設你的清單叫tag_list)
01/04 11:43, 5F

01/04 11:43, 5年前 , 6F
new_tag_list=[tag for tag in tag_list if ("費用" in
01/04 11:43, 6F

01/04 11:43, 5年前 , 7F
tag) or ("資訊" in tag)]
01/04 11:43, 7F
謝謝papple大 我晚點試試 請問這樣印出結果會顯示 “(費用) NT 5,000” 嗎 因為目前困擾的就是我要的名詞,前後都有多餘的string ※ 編輯: Niseel (27.247.32.41), 01/04/2019 12:40:32

01/04 15:19, 5年前 , 8F
你試了就知道。
01/04 15:19, 8F

01/04 17:38, 5年前 , 9F
有沒有網頁?
01/04 17:38, 9F

01/05 04:34, 5年前 , 10F
直接給網址
01/05 04:34, 10F
已提供 ※ 編輯: Niseel (39.10.35.241), 01/05/2019 18:13:10 ※ 編輯: Niseel (39.10.35.241), 01/05/2019 18:13:58 ※ 編輯: Niseel (39.10.35.241), 01/05/2019 18:16:49 ※ 編輯: Niseel (39.10.35.241), 01/05/2019 18:21:32

01/06 08:00, 5年前 , 11F
不知道怎麼貼文字,所以
01/06 08:00, 11F

01/06 08:01, 5年前 , 12F
用圖片的方式 (有單純分享文字的網站嗎)
01/06 08:01, 12F
謝謝h大回覆 我最後是用兩種方法解析出來 一種就是re 一種就是String join再抓出來 , 覺得做出來好像拯救世界一樣爽XD ※ 編輯: Niseel (39.10.35.241), 01/07/2019 21:13:33 ※ 編輯: Niseel (39.10.35.241), 01/07/2019 21:14:01 ※ 編輯: Niseel (39.10.35.241), 01/07/2019 21:14:32
文章代碼(AID): #1SBgqlJX (Python)