[問題] urllib2可以開啟多檔案嗎?

看板Python作者時間12年前 (2013/04/11 19:10), 編輯推噓0(0025)
留言25則, 3人參與, 最新討論串1/1
現在資料夾裡有HTML的檔案 data = urllib2.urlopen("file:///D:/路徑/xxx.html") 這樣單檔案讀取是沒有問題的!!! 但如果現在要讀取整個資料夾下的HTML檔案 詢問寫法應該要怎麼寫 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.114.123

04/11 19:36, , 1F
import glob; html_list = glob.glob("*.htm*")
04/11 19:36, 1F

04/11 19:37, , 2F
html_list = map(lambda x: open(x), html_list)
04/11 19:37, 2F

04/11 19:37, , 3F
讀取local的html應該不用用到urllib2, 用open就夠了
04/11 19:37, 3F

04/11 21:17, , 4F
因為要使用html_parser進行分析,所以應用urllib2
04/11 21:17, 4F

04/11 21:18, , 5F
如果這樣用data = urllib2.urlopen
04/11 21:18, 5F

04/11 21:19, , 6F
("file:///D:/路徑/*.html") 這樣會錯誤
04/11 21:19, 6F

04/11 22:06, , 7F
html_parser和urllib 應該沒有關係吧= =""
04/11 22:06, 7F

04/11 22:26, , 8F
改用urllib.urlopen就可以了,不過效果跟open是一樣的
04/11 22:26, 8F

04/11 22:28, , 9F
不知道你是用什麼html parser?
04/11 22:28, 9F

04/11 22:58, , 10F
用*.html讀取會錯誤
04/11 22:58, 10F

04/11 22:59, , 11F
先定義function,然後
04/11 22:59, 11F

04/11 23:00, , 12F
f = formatter.NullFormatter()
04/11 23:00, 12F

04/11 23:01, , 13F
html_parser = SearchLinks(f)
04/11 23:01, 13F

04/11 23:03, , 14F
data = urllib2.urlopen("file:///d:/路徑/xxx.html")
04/11 23:03, 14F

04/11 23:03, , 15F
html_parser.feed(data.read())
04/11 23:03, 15F

04/11 23:03, , 16F
html_parser.close()
04/11 23:03, 16F

04/11 23:04, , 17F
links = html_parser.get_links()
04/11 23:04, 17F

04/11 23:04, , 18F
這樣當然錯誤了,資料夾內沒有 "*.html"這個檔案啊
04/11 23:04, 18F

04/11 23:04, , 19F
因為檔案不只一個,所以在應用for 迴圈處理
04/11 23:04, 19F

04/11 23:05, , 20F
擷取到想要的資料
04/11 23:05, 20F

04/11 23:05, , 21F
用最上面的方法,然後把open(x)改成open(x).read()
04/11 23:05, 21F

04/11 23:05, , 22F
那要讀取所有檔案,應該用什麼方式寫?
04/11 23:05, 22F

04/11 23:05, , 23F
然後 html_list 內的資料就是每一個html file的字串了
04/11 23:05, 23F

04/11 23:06, , 24F
我試試看,謝謝
04/11 23:06, 24F

04/11 23:14, , 25F
個人偏向1f 推薦的glob 來找檔案..
04/11 23:14, 25F
文章代碼(AID): #1HPfeQA_ (Python)
文章代碼(AID): #1HPfeQA_ (Python)