推 f496328mm: code貼來看看 01/31 19:30
因為這個網頁一開始會有隨機驗證碼,後續還有一些反爬機制,
我暫時還不想在舊課題未完前面對一堆新課題,所以把我需要的網頁先存在本機端,
https://1drv.ms/u/s!AuQERVaW1DVCgv4lwTnpEymSIN0ORQ
例如以上這個檔就有怪字(big5編碼,需下載,直接用OneDrive會以unicode開出亂碼)
程式碼如下:
from lxml import etree,html
with open('147.htm','rb') as f:
page = f.read()
tree = html.fromstring(page)
# 怪字前元素,可定位
建照碼 = tree.xpath('//td[contains(text(),"(105)")]')[0].text
# 怪字後元素,無法定位
地號 = tree.xpath('//td[contains(text(),"基地概要")]')[0].text
print(+建照碼+' '+地號)
推 BZnoo: BIG-5尚有著名的許功蓋問題,也值得研究一下 XD 01/31 20:22
謝謝,這個好像有點深,我再慢慢研究XD
※ 編輯: liquidbox (59.115.117.188), 01/31/2019 21:09:58
推 shala: str不能decode吧。要先encode再decode 01/31 21:05
推 shala: 網頁是utf-8,應該用utf-8編碼就可以輸出了 01/31 21:07
※ 編輯: liquidbox (59.115.117.188), 01/31/2019 21:14:15
→ f496328mm: 你存下來就是亂碼了 01/31 23:24
→ f496328mm: 你乾脆直接給網址,說不定是你存的問題 01/31 23:24
推 ckc1ark: 兆峯建築師事務所 不過看起來檔案用的也不是big5-hkscs 02/01 17:22
→ ckc1ark: 這個就是big5-hkscs了 02/01 17:36
→ ckc1ark: 感覺是你這邊抓的網頁編碼已經出問題 02/01 17:37
我是直接對著連結右鍵另存新檔,把一個個的.htm抓下來,
過程中似乎沒有可以調整編碼的機會,但仔細想想,您說的有道理,
因為我在抓下數百個檔案時確實發現一直遇到編碼問題
絕大部份似乎可以用big5-hkscs解決,但少數無法的就直接用人工了XD
※ 編輯: liquidbox (36.227.169.167), 02/03/2019 10:27:04
推 ckc1ark: 像你缺的字應該是 兆峯建築師事務所的峯 正確的big5-hksc 02/04 12:59
→ ckc1ark: s編碼是我貼的這篇才對 你貼的用hkscs解出來不是峯這個字 02/04 12:59