1

私がやりたいことは、このサイトで:

http://www.yellowpages.com/memphis-tn/gift-shops

お店の名前と電話番号をCSVに抽出したいです。たとえば、最初のエントリは次のようになります。

バブコック ギフト、(901) 763-0700

等..

私はPythonを使用しています。urllib2.urlopen( ) を実行すると、宣伝文句全体が表示されます。このテキストを処理して目標を達成するにはどうすればよいですか?

4

2 に答える 2

1

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

于 2013-06-07T23:09:13.753 に答える