我決定學習C++,我非常喜歡網站www.learncpp.com。 現在,我想製作一個pdf版本並打印出來,以便我可以在紙上閱讀它。首先,我已經構建了網站中所有章節的url收集器。它工作正常。如何知道什麼是正確的編碼?
現在我正在創建一個HTML的first chapter。我寫道:
import requests
from bs4 import BeautifulSoup
import codecs
req = requests.get("http://www.learncpp.com/cpp-tutorial/01-introduction-to-these-tutorials/")
soup = BeautifulSoup(req.text,'lxml')
content = soup.find("div", class_="post-9")
f = open("first_lesson.html","w")
f.write(content.prettify().encode('utf-8'))
f.close()
,我得到了我的first_lesson.html
文件的文件夾中。 問題是,當我打開html文件來檢查結果時,有奇怪的符號(嘗試運行代碼並查看)在這裏和那裏。
我加.encode('utf-8')
,否則我會得到錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in position 155: ordinal not in range(128)
如何消除這些怪異的符號?什麼是正確的編碼? 而且,如果我將來遇到類似的問題,我怎麼才能知道什麼是正確的編碼?
UPDATE:代替'utf-8'編碼我在'windows-1252'編碼,它的工作。但是理解如何正確編碼的最佳策略是什麼?因爲我不認爲試試這個試試這是一個很好的
爲什麼不能http://scrapy.org/?它的開發正是爲了這樣的任務。 –
@CodePainters,req和bs4是我被教會颳去的第一種方式。我很樂意學習新的方法(我絕對想看看scrapy),但現在我想明白爲什麼這不起作用 – Pigna