は、私は何だろうと、スクラップtwitter.com/の代わりに、TwitterのAPIを使用しています。
主な理由は、フロントエンドはクエリが制限されていない(または少なくとも制限の少ない)ことです。また、twitterを数秒で呼び出す必要がある場合でも、User-Agentとプロキシを使って遊ぶことができます。
私にとっては、スクラップはAPIの制限を回避する最も簡単な方法です。
さらに、クロールする必要があるのは簡単にアクセスできます。私は、あなたのCSVファイルを解析してユーザーの出力場所をシンプルなコードにしました。
私は楽しみのためにあなたのレポでPRを行いますが、ここにあるコードになります。
#!/usr/env/bin python
import urllib2
from bs4 import BeautifulSoup
with open('00_Trump_05_May_2016.csv', 'r') as csv:
next(csv)
for line in csv:
line = line.strip()
permalink = line.split(',')[-1].strip()
username = line.split(',')[0]
userid = permalink.split('/')[3]
page_url = 'http://twitter.com/{0}'.format(userid)
try:
page = urllib2.urlopen(page_url)
except urllib2.HTTPError:
print 'ERROR: username {} not found'.format(username)
content = page.read()
html = BeautifulSoup(content)
location = html.select('.ProfileHeaderCard-locationText')[0].text.strip()
print 'username {0} ({1}) located in {2}'.format(username, userid, location)
出力:
username cenkuygur (cenkuygur) located in Los Angeles
username ilovetrumptards (ilovetrumptards) located in
username MorganCarlston hanifzk (MorganCarlston) located in
username mitchellvii (mitchellvii) located in Charlotte, NC
username MissConception0 (MissConception0) located in #UniteBlue in Semi-Red State
username HalloweenBlogs (HalloweenBlogs) located in Los Angeles, California
username bengreenman (bengreenman) located in Fiction and Non-Fiction Both
...
を明らかにあなたはそれをより強固にするために、このコードを更新する必要がありますが、基本は完了です。
PS: 'permalink'フィールドを解析します。これは、プロファイルされたスラッグを保存してプロファイルのページにアクセスするためです。それはかなり汚いですが、迅速な&それはGoogleのAPIについて
の作品、私はsurellyずっとGoogleの呼び出しに回避するために、キャッシュ/データベースの種類を使用します。あなただけのdictのように作ることができますデシベルすることなく、Pythonで
、:
{
"San Fransisco": [x.y, z.a],
"Paris": [b.c, d.e],
}
とキーが存在する場合、はいちょうどここから私の値を取る場合、私は最初、この辞書で確認します解析する場所ごとに、それ以外の場合はgoogle APIを呼び出して、db dictに値を保存します。
この2つの方法でデータを取得できると思います。
REST APIまたはStreaming APIを使用していますか?私はREST APIの限界について肯定的ではありませんが、ストリーミングAPIを通じてジオロケーションを要求することができます。 – Tristen
私はtwythonを使用しています。あなたはcode n lookで解決策を教えてください。 –
あなたのコードでもgoogle map APIを呼び出しています。APIによって設定された制限を守ってください。 https://developers.google。com/maps/documentation/geocoding/usage-limits –