2012-05-03 5 views
0


ScraperWikiで次のコードを使用して、特定のハッシュタグをTwitterで検索しています。
Twitterで提供されている郵便番号をピックアップしています(利用できない場合は)。これは、data['location'] = scraperwiki.geo.extract_gb_postcode(result['text'])行で実現します。
しかし、は、ポストコード情報を含むつぶやきに興味があります(これは後の段階でGoogleマップに追加されるためです)。
これを行う最も簡単な方法は何ですか?私はPHPを使っていますが、Pythonはまったく新しい分野です。 ご協力いただきありがとうございます。
幸運を祈り、
マーティンScraperWiki/Python:プロパティがfalseのときにレコードをフィルタリングする

import scraperwiki 
import simplejson 
import urllib2 

QUERY = 'enter_hashtag_here' 
RESULTS_PER_PAGE = '100' 
NUM_PAGES = 10 

for page in range(1, NUM_PAGES+1): 
    base_url = 'http://search.twitter.com/search.json?q=%s&rpp=%s&page=%s' \ 
     % (urllib2.quote(QUERY), RESULTS_PER_PAGE, page) 
    try: 
     results_json = simplejson.loads(scraperwiki.scrape(base_url)) 
     for result in results_json['results']: 
      #print result 
      data = {} 
      data['id'] = result['id'] 
      data['text'] = result['text'] 
      data['location'] = scraperwiki.geo.extract_gb_postcode(result['text']) 
      data['from_user'] = result['from_user'] 
      data['created_at'] = result['created_at'] 
      print data['from_user'], data['text'] 
      scraperwiki.sqlite.save(["id"], data) 
    except: 
     print 'Oh dear, failed to scrape %s' % base_url 
     break 

答えて

1

あなたはこれをしたいですか?私は無料のScraperWikiテストページを試してみて、あなたが望むことをするようです。より複雑なものを探しているなら、私に教えてください。

import scraperwiki 
import simplejson 
import urllib2 

QUERY = 'meetup' 
RESULTS_PER_PAGE = '100' 
NUM_PAGES = 10 

for page in range(1, NUM_PAGES+1): 
    base_url = 'http://search.twitter.com/search.json?q=%s&rpp=%s&page=%s' \ 
     % (urllib2.quote(QUERY), RESULTS_PER_PAGE, page) 
    try: 
     results_json = simplejson.loads(scraperwiki.scrape(base_url)) 
     for result in results_json['results']: 
      #print result 
      data = {} 
      data['id'] = result['id'] 
      data['text'] = result['text'] 
      data['location'] = scraperwiki.geo.extract_gb_postcode(result['text']) 
      data['from_user'] = result['from_user'] 
      data['created_at'] = result['created_at'] 
      if data['location']: 
       print data['location'], data['from_user'] 
       scraperwiki.sqlite.save(["id"], data) 
    except: 
     print 'Oh dear, failed to scrape %s' % base_url 
     break 

出力:それはかなりの数の偽陽性かかわらすることができますギガバイト郵便番号を抽出するためのscraperwikiチェック、より少しピッカーですので

P93JX VSDC 
FV36RL Bootstrappers 
Ci76fP Eli_Regalado 
UN56fn JasonPalmer1971 
iQ3H6zR GNOTP 
Qr04eB fcnewtech 
sE79dW melindaveee 
ud08GT MariaPanlilio 
c9B8EE akibantech 
ay26th Thepinkleash 

私はそれを少し洗練されてきました。基本的に私は受け入れられた答えをhereから受け取り、いくつかの否定的なlookbehind/lookaheadを追加して、さらにいくつかを除外しました。スクレーパーのwikiチェックが否定的なlookbehind/lookaheadなしで正規表現を行うように見えます。それはちょっと役立つことを願っています。

import scraperwiki 
import simplejson 
import urllib2 
import re 

QUERY = 'sw4' 
RESULTS_PER_PAGE = '100' 
NUM_PAGES = 10 

postcode_match = re.compile('(?<![0-9A-Z])([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {0,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)(?![0-9A-Z])', re.I) 

for page in range(1, NUM_PAGES+1): 
    base_url = 'http://search.twitter.com/search.json?q=%s&rpp=%s&page=%s' \ 
     % (urllib2.quote(QUERY), RESULTS_PER_PAGE, page) 
    try: 
     results_json = simplejson.loads(scraperwiki.scrape(base_url)) 
     for result in results_json['results']: 
      #print result 
      data = {} 
      data['id'] = result['id'] 
      data['text'] = result['text'] 
      data['location'] = scraperwiki.geo.extract_gb_postcode(result['text']) 
      data['from_user'] = result['from_user'] 
      data['created_at'] = result['created_at'] 
      if data['location'] and postcode_match.search(data['text']): 
       print data['location'], data['text'] 
       scraperwiki.sqlite.save(["id"], data) 
    except: 
     print 'Oh dear, failed to scrape %s' % base_url 
     break 
+0

お返事ありがとうございました。そうではありません...私は特定のハッシュタグを含むつぶやきを探しています(#food - 私は空腹です!)が、私は郵便番号を含むものだけに興味があります。誰かがSW4 0JAの近くに何か食べ物を入手するか知っていますか?私は後に何をしているのですか?「誰でも知っている場所を知っていますか?捨てられるだろう。それを説明することを願って - あなたの助けをもう一度感謝! – Martin

+0

それは上記のことではありませんか?私は郵便番号の入ったつぶやきのみを印刷/保存しています。ハッシュタグとしてSW4を使用したので、データをすばやく取得できます。 –

+0

代わりに#meetupを探して、ハッシュコードとユーザー名だけを削除するように変更しました。それがあなたの後ろでないなら、私はあなたが何をしているのか分かりません! –

関連する問題