0

Melanjut tutorial yang sebelumnya, yaitu mengenai: Cara menggunakan Tweepy dan saat ini kita membahas sedikit bagaimana cara Filter Timeline Twitter menggunakan Tweepy. 

Yang perlu kita perhatikan adalah “Dokumentasi”, karena dokumentasi sangat penting sekali. Langsung saja ke permasalahan, berikut ini adalah script simple’nya:

import tweepy
import requests
from tweepy.auth import OAuthHandler
requests.packages.urllib3.disable_warnings()

# Consumer keys and access tokens, used for OAuth
consumer_key = 'JNT2qhC2noSTSya'
consumer_secret = 'YibVMiytGm2qWCun83cYjH'
access_token = '1746506726-Jx7xPaH63tNC40JO2Q'
access_token_secret = 'LDg6sOkOKlMEO9TSchDDbyZH'

# OAuth process, using the keys and tokens
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
api = tweepy.API(auth)

data_status_asli = open("status_asli.txt", "w")
public_tweets = api.home_timeline()
out = ''
for tweet in public_tweets:
    user = tweet.user.name.encode('utf-8')
    status = tweet.text.encode('utf-8')
    out += str(user) +" : "+str(status) + "n"
data_status_asli.write(out)
data_status_asli.close()

Sedikit penjelasan:

Pada tutorial yang sebelumnya kita telah membahas sedikit penggunaan dari tweepy sampai di update status, dan kali ini kita coba grabiing timeline.
1. Seperti yang terlihat, disitu ada variable data_status_asli = open("status_asli.txt", "w"), disitu nantinya untuk menyimpan hasil dari grabbing yang kita lakukan menggunakan tweepy, yang kita simpan di file bernama status_asli.txt.

2. tweet.user.name dan tweet.text seperti pada dokumentasi’nya di tweepy http://tweepy.readthedocs.org/en/v3.2.0/getting_started.html#hello-tweepy, disitu merupakan basic kita untuk melihat text dari timeline twitter. dan setelah kita lihat fungsi dari api.home_timeline()https://github.com/tweepy/tweepy/blob/v3.2.0/tweepy/api.py#L84, disana merujuk pada dokumentasi dari twitter yaitu di https://dev.twitter.com/rest/reference/get/statuses/home_timeline.
Nah disitulah maksud dari .user.name dan .tweet.text, yang bisa kita lihat bentuknya adalah JSON (pastikan anda menguasai bagaimana cara mengakses JSON di python)

3. variable out = '', yang merupakan variable string, dan didalam looping for, bisa kita lihat bagaimana user dan status dimasukkan pada variable out +=, yang artinya seluruh status dan nama user masuk kedalam variable out tersebut.

4. .encode('utf-8') ini untuk menghandle error yang terjadi yaitu: “UnicodeEncodeError: ‘ascii’ codec can’t encode character … “ hal ini terjadi pada saat menyimpan kedalam variable string out +=, hal ini sama seperti yang ditanyakan dan disolved oleh salah satu jawaban di stackoverflow http://stackoverflow.com/a/9942822/3445802

5. Nah selanjutnya, pada penjelasan yang pertama tadi, yaitu pada variable data_status_aslikemudian kita masukkan data yang ada didalam variable out kedalam file yang bernama status_asli.txt yang kita buat.

Nah mari kita checkout bagaimana hasilnya setelah kita eksekusi:

Results Grabbing Status Timeline Twitter

Nah tutorial diatas kita menggrabbing status aslinya, Dan selanjutnya kita akan membuat fungsi simple bagaimana untuk memfilter kata-katanya, kita hanya perlu menambahkan sedikit fungsi untuk memfilter kata-katanya:

import tweepy
import requests
from tweepy.auth import OAuthHandler
requests.packages.urllib3.disable_warnings()

# Consumer keys and access tokens, used for OAuth
consumer_key = 'JNT2qhC2noS'
consumer_secret = 'YibVMiytGm2qWCu'
access_token = '1746506726-Jx7xPaH63tNC40'
access_token_secret = 'LDg6sOkOKlMEO9TSch'

# OAuth process, using the keys and tokens
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
api = tweepy.API(auth)

data_status_di_filter = open("status_di_filter.txt", "w")
public_tweets = api.home_timeline()
out = ''
status_baik = ["baik", "assalamualaikum", "dateng"]
status_buruk = ["buruk", "asem", "ente", "cekidot"]
for tweet in public_tweets:
    user = tweet.user.name.encode('utf-8')
    status = tweet.text.encode('utf-8')
    cek_status = str(status).lower().split()
    filter_status = ''
    for stat in cek_status:
        if stat in status_baik and stat not in status_buruk:
            filter_status = " --> Ini status baik!"
        elif stat in status_buruk and stat not in status_baik:
            filter_status = " --> Ini status buruk!"
        else:
            pass
    out += str(user) +" : "+str(status) + filter_status + "n"
data_status_di_filter.write(out)
data_status_di_filter.close()

Sedikit penjelasan:
Pada script diatas kita hanya menggunakan metode filtering yang sangat sederhana menggunakan variable list yang didalam status_baik dan status_buruk, karena kita akan memfilter sebuah status.

1. Buat list yang isinya kata-kata buruk dan baik, untuk membedakannya, lebih enaknya dibuat list yang berbeda, seperti script diatas terdapat list status_baikdan status_buruk.

2. Disini kita membuat variable cek_status = str(status).lower().split(), yang digunakan untuk men-split status berdasarkan spasi dan di lower(dikecilkan) semua, untuk penyeragaman. Jika ingin melihat bagaimana hasil dari cek_status tersebut, dibawah variable’nya bisa diberi: print cek_status , hal tersebut untuk melihat bagaimana hasil output dari variable cek_statusyang kita buat.

3. Selanjutnya kita membuat variable string berupa filter_status, yang nantinya digunakan sebagai ending, apakah sebuah status masuk kedalam kategori status baik atau buruk, hal tersebut bisa kita lihat pada kondisi if’nya, dan ketika masuk kondisi else / lainnya, maka pass / dilewatkan saja.

4. Dan endingnya sama seperti pada tutorial sebelumnya, yaitu memasukkan variable user, status dan filter_status kedalam variable out, yang nantinya digunakan untuk memasukkan data kedalam file berupa status_di_filter.txt

Dan gambar ini adalah hasil dari filternya: 

Status filter using tweepy

What Next?

Nah, untuk penggunaan selanjutnya, silahkan di kembangkan sendiri sesuai dengan kebutuhan.. laugh
Semoga bermanfaat..

grabber python looping

Your Answer

blog comments powered by Disqus