[英]python - unicode encoding conflict
更新-我嘗試包括crontab作業的完整路徑,但是相同的問題再次發生...我只對包含拉丁字符“Moët”的特定文章有疑問
我是python 3的新手,我需要與“ unicode編碼沖突”相關的問題的幫助。
我正在創建一個Web刮板,它可以接收在線文章並將其保存在本地。
我想做的是:
代碼如下:
article_html = self.request(articles_URL)
soup = BeautifulSoup(article_html.text, 'html.parser')
title_modify = soup.title.string
title_real = title_modify + '.txt'
current_path = os.getcwd()
article_names = os.listdir(current_path)
if title_real in article_names:
print(title_real, 'exists, no need to re-create')
else:
###omit codes for catching article content
with codecs.open(title_real, "a", encoding='utf-8') as f:
f.write(XXX)
然后,我使用預定的Centos 7 crontab作業讓它自動運行。 它將每天檢測到相同的Web URL,並嘗試將新文章捕獲為txt文件。
一切正常,但是今天,我發現它不適用於包含拉丁字符的文章標題。 理想情況下,系統將打印“文件存在”並轉到下一篇文章,但是, 它顯示程序創建了一些重復的文章:
Aug 26 09:50 XXX with Moët XXX.txt
Aug 27 09:29 XXX with Moët XXX (Unicode Encoding Conflict (1)).txt
Aug 26 20:30 XXX with Moët xxx (Unicode Encoding Conflict).txt
奇怪的是,當我手動運行python腳本時,它工作正常 :
python test.py
XXX with Moët XXX.txt exists, no need to re-create
非常感謝任何人都可以提供幫助。
廚師
Crontab最有可能使用了精簡的環境,這可能會導致意外行為。 看到這個 ,很可能會解決您的問題。
基本上,您需要提供python可執行文件的完整路徑(您可以通過運行which python
來獲取它)。 因此,您的crontab條目將如下所示:
20 4 * * * your_python_path your_program_path.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.