私がやりたいことは、このサイトで:
http://www.yellowpages.com/memphis-tn/gift-shops
お店の名前と電話番号をCSVに抽出したいです。たとえば、最初のエントリは次のようになります。
バブコック ギフト、(901) 763-0700
等..
私はPythonを使用しています。urllib2.urlopen( ) を実行すると、宣伝文句全体が表示されます。このテキストを処理して目標を達成するにはどうすればよいですか?
私がやりたいことは、このサイトで:
http://www.yellowpages.com/memphis-tn/gift-shops
お店の名前と電話番号をCSVに抽出したいです。たとえば、最初のエントリは次のようになります。
バブコック ギフト、(901) 763-0700
等..
私はPythonを使用しています。urllib2.urlopen( ) を実行すると、宣伝文句全体が表示されます。このテキストを処理して目標を達成するにはどうすればよいですか?
BeautifulSoupを試してみた
import urllib
import re
from BeautifulSoup import *
url = 'http://www.yellowpages.com/memphis-tn/gift-shops'
u = urllib.urlopen(url)
soup = BeautifulSoup(u)
test = soup.findAll('div', {'class':"info"})
for each in test:
aref = each.findAll('a',{'class':"url "})
phone = each.findAll('span',{'class':"business-phone phone"})
x = re.sub(r'[^0-9]',"",str(phone))
print aref[0]['title'] + " - " + x
HTMLページのソースコードを見て、このスクリプトを導き出しました。リストを含む「div」セクションを見つけました。そして、「aref」で取得したタグに各企業が一覧表示されます。
不思議なことに、「電話」を拾ったのですが、テキストには文字列全体が include タグで含まれていました。理由はわかりません。そこで、正規表現を使用して、電話番号を構成する数字以外のすべてを置き換えました。
ここにbeautifulsoupのドキュメントがあります。 http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html