我正在瀏覽一個網站,其網頁的網址中有尼泊爾語,即非英文字體。我如何爲任何蜘蛛提供start_urls(我正在使用scrapy)?有沒有任何種類的編碼技術?並從瀏覽器的url直接複製粘貼嗎?在尼泊爾(非英文)使用網址搜索網頁
更新: 我需要進一步解析我在某些網頁上獲得的鏈接。當然這些鏈接也不是英文的。 謝謝...
我正在瀏覽一個網站,其網頁的網址中有尼泊爾語,即非英文字體。我如何爲任何蜘蛛提供start_urls(我正在使用scrapy)?有沒有任何種類的編碼技術?並從瀏覽器的url直接複製粘貼嗎?在尼泊爾(非英文)使用網址搜索網頁
更新: 我需要進一步解析我在某些網頁上獲得的鏈接。當然這些鏈接也不是英文的。 謝謝...
符合RFC 3986的網址將使用UTF-8和URL Percent Encoding進行編碼。尼泊爾語使用Devanagari script,這在Unicode中是完全可以代表的,因此可以用UTF-8編碼。
查看示例中的Nepali Wikipedia。該特定URL是UTF-8和URL百分比編碼的一個很好的例子:
http://ne.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A5%8D%E0%A4%AF_%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0
該系列的%E0%A4%AE
逃逸是百分比編碼UTF-8字節。網頁的HTML源代碼應該有這些URL已編碼的,但如果是這樣,而不是:
import urlparse, urllib
parts = urlparse.urlsplit(u'http://ne.wikipedia.org/wiki/मुख्य_पृष्ठ')
parts = parts._replace(path=urllib.quote(parts.path.encode('utf8')))
encoded_url = parts.geturl().encode('ascii')
演示:
http://ne.wikipedia.org/wiki/मुख्य_पृष्ठ
你可以用自己編碼路徑部分
>>> import urlparse, urllib
>>> parts = urlparse.urlsplit(u'http://ne.wikipedia.org/wiki/मुख्य_पृष्ठ')
>>> parts = parts._replace(path=urllib.quote(parts.path.encode('utf8')))
>>> parts.geturl().encode('ascii')
'http://ne.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A5%8D%E0%A4%AF_%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0'
哪個版本的Python?您是否真的嘗試複製和粘貼網址? – jonrsharpe
版本2.7。是的,我嘗試複製粘貼,它似乎並沒有工作。但我不確定。我也更新了我的問題。謝謝 – Nabin
URL以UTF8編碼,例如,請參閱[以Python解碼UTF-8](http://stackoverflow.com/q/16566069)。你的尼泊爾網址將沒有什麼不同。 –