背景があります.encode( 'utf-8')は何もしていません
私は友人の仕事のための小さなプログラムに取り組んでいます。彼のビジネスでは、彼は彼が働いている会社のウェブサイトのリストを持っているウェブサイトを手動で行きます。リストには何百もの企業があります。彼がしているのは、連絡先情報を入手してExcelに入れることだけです。
は再び、彼は手動でこれを行います...彼はこれをやって時間を過ごすことになりますと述べました。
これをPythonで自動化しようと思います。私は約1ヶ月の経験をもって独学です。
今私は正常にテキストだけのためのウェブサイトを掻き取るプログラムを持っています。しかし、テキストをUnicode文字列のリストに入れますが、何らかの理由でリストをutf-8に変換しないので、私はそれを扱うことができます。
import re
import urllib
from bs4 import BeautifulSoup
#url = raw_input("Please enter a url: ")
html = urllib.urlopen("http://www.cerecor.com/contact")
soup = BeautifulSoup(html, "lxml")
data = soup.findAll(text=True)
def visible(element):
if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
return False
elif re.match('<!--.*-->', str(element.encode('utf-8'))):
return False
return True
result = filter(visible, data)
[x.encode('UTF8') for x in result]
#result = ','.join(result)
number = u"(\+?1?.?\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-
\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})"
print result
#numbers = [re.findall(number, x) for x in result]
出力 [U ' 'は、S uが 'N \'、U'' は、uが 'N \'、uが 'N \'、uが 'N \'、uが 'N \' 、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u ' '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u ' 'Overview'、u '\ n'、u'\ n '、u'\ n'、u''Board Directors '、u'\ n'、u u'Pipeline '、u' \ n '、u' u '\ n'、u'CERC-301 '、u'CERC-611'、u'\ n '、u'CERC-406'、u ' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n ' 、u '\ n'、u'Onview '、u' \ n '、u'News/Events'、u '\ n'、u'C '、u' n '、u'Analystカバレッジ'、u '\ n'、u'Stock Data '、u' \ n '、u'SECファイリング'、u '\ n'、u'Corporate Gov u '\ n'、u ''、u ' s'、u '\ n'、u ''、u '\ n'、u'Careers '、u' \ n u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n' 、u '\ n'、u '\ n'、u '\ n'、 s '、u' \ n '、u " n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n ' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u'Company '、u' \ n '、u' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u'General Inqueries '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n ' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u'Cerecor、Inc. ' 、u '\ n'、u '\ r \ n 400イーストプラットストリート'、u 'Su \ t \ tBaltimore、MD 21202 \ t \ t '、u' \ n '、u' \ r \ n \ t 電話番号:410-522-8707 \ r \ n \ t \ t '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u'About us'、u '\ n'、u '\ n '、u' \ n '、u' \ n '、u' \ n '、u'Pipeline'、u '\ n'、u ' u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n'、u '\ n' u '\ r \ n \ t \ t \ t \ xa9 2017'、u'Cerecor、Inc. '、u' '、u' \ n '、u' \ n '、u'Privacy 免責事項'、 ' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n '、u' \ n ' 、uは 'N \'、U ' 'は、uは' //汎用ラッパー'、uが 'N \'、U 'は' N \]
一切のアドバイスは参考になります。私はちょうど私が正規表現でそれを検索することができるように、そのテキストまたはリストのすべての文字列のいずれかにそれを取得したい。
をデフォルトのエンコーディングはすでにUTF-8です...参照:https://docs.python.org/3/howto/unicodeを。html – alfasin
正規表現パターンのタイプが文字列のタイプと同じであることを確認してください。あなたの場合、数値はUnicodeですが、xはstr(バイト)です。 – stamaimer
ええ、あなたは正しいです、なぜ私は文字列に変換されていない理由を把握できなかったので、私はユニコードでそれを入れました。 –