Difference between revisions of "Python: Collect Twitter follower network with twecoll"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Langkah yang perlu di lakukan, | Langkah yang perlu di lakukan, | ||
− | * | + | * Dapatkan key & password Twitter API |
− | * Download | + | * Download script twecoll |
− | * | + | * Konfigurasi script |
− | * | + | * Jalankan script untuk mengumpulkan network & membuat graph. |
Line 15: | Line 15: | ||
* python | * python | ||
+ | * gephi | ||
+ | * sudo pip install igraph | ||
==Getting Twitter API keys== | ==Getting Twitter API keys== | ||
Line 20: | Line 22: | ||
Kita perlu authentikasi dari twitter. Ini bisa dilakukan secara gratis & via web. | Kita perlu authentikasi dari twitter. Ini bisa dilakukan secara gratis & via web. | ||
+ | * Masuk ke apps.twitter.com | ||
+ | * Buat new app (top right) | ||
+ | * Isi Name, Description, Website (URL apa saja yang valid) dan check Developer Agreement. | ||
+ | * Switch ke ‘Keys and Access Tokens’ Tab. | ||
− | + | Catatan: jangan di share. | |
− | |||
− | |||
− | |||
− | |||
==2. Download twecoll== | ==2. Download twecoll== | ||
Line 39: | Line 41: | ||
− | + | Dalam script ada beberapa parameter. | |
− | FMAX mendefinisikan berapa banyak | + | FMAX yang perlu di ubah. |
+ | FMAX mendefinisikan berapa banyak account yang mungkin kita kumpulkan datanya. | ||
+ | |||
+ | Untuk percobaan awal ada baiknya set FMAX kecil saja, misalnya 20. | ||
==Penggunaan twecoll== | ==Penggunaan twecoll== | ||
Line 73: | Line 78: | ||
==4. Run twecoll to collect data== | ==4. Run twecoll to collect data== | ||
− | + | Saat jalan pertama kali twecoll akan menanyakan consumer key & consumer secret. Data ini biasanya akan di simpan di .twecoll. | |
+ | |||
+ | buat folder | ||
− | + | mkdir fdat | |
+ | mkdir img | ||
===First run=== | ===First run=== | ||
− | + | cd ke lokasi twecoll. | |
+ | Jalankan misalnya (untuk userid yang di evaluasi luca) | ||
python twecoll init luca | python twecoll init luca | ||
− | + | secara default twecoll akan mengumpulkan nama-nama yang di follow oleh luca. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Jika kita ingin sebalik-nya, mencek siapa saja yang memfollow luca, maka peritah init-nya adalah | |
− | |||
python twecoll init luca -o | python twecoll init luca -o | ||
− | + | atau: | |
python twecoll init luca --followers | python twecoll init luca --followers | ||
− | + | ini perintah ini akan membuat file SCREENNAME.dat yang akan berisi account yang di follow / mem-follow account yang sedang kita evaluasi. | |
− | |||
− | |||
===fetch command=== | ===fetch command=== | ||
− | + | perintah fetch aman menyisir semua account yang di kumpulkan oleh init, juga mengumpulkan semua ID dari account yang di follow. | |
− | + | Contoh, | |
− | |||
python twecoll fetch luca | python twecoll fetch luca | ||
− | + | hasilnya akan di simpan pada folder fdat | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===edgelist command=== | ===edgelist command=== | ||
− | + | Setelah semua data berhasil di kumpulkan, maka kita akan menggabungkannya menggunakan perintah edgelist. | |
+ | Hasil yang di peroleh adalah file .gml. | ||
+ | Jika kita menginstalasi python package igraph, maka script akan memprint dan buat gambarnya. | ||
+ | Perintah yang bisa digunakan adalah, | ||
− | + | python twecoll edgelist luca -g -m | |
− | |||
− | + | -m --missing untuk memasukan account yang tidak berhasil di collect datanya. | |
+ | -g --gdf untuk membuat .gdf file. | ||
− | + | Maka kita akan memiliki, | |
− | + | SCREENNAME.gml | |
+ | SCREENNAME.gdf | ||
− | + | File ini bisa di buka menggunakan Gephi. | |
==Guide: Analyzing Twitter Networks with Gephi 0.9.1== | ==Guide: Analyzing Twitter Networks with Gephi 0.9.1== |
Latest revision as of 14:51, 28 January 2017
Untuk mengumpulkan twitter follower dapat menggunakan Python script twecoll. Di samping itu juga menggunakan Gephi untuk memvisualisasikannya.
Langkah yang perlu di lakukan,
- Dapatkan key & password Twitter API
- Download script twecoll
- Konfigurasi script
- Jalankan script untuk mengumpulkan network & membuat graph.
Prerequisites: Python and the command line
Untuk menjalankan twecoll, kita membutuhkan
- python
- gephi
- sudo pip install igraph
Getting Twitter API keys
Kita perlu authentikasi dari twitter. Ini bisa dilakukan secara gratis & via web.
- Masuk ke apps.twitter.com
- Buat new app (top right)
- Isi Name, Description, Website (URL apa saja yang valid) dan check Developer Agreement.
- Switch ke ‘Keys and Access Tokens’ Tab.
Catatan: jangan di share.
2. Download twecoll
Download twecoll,
- modifikasi oleh luca https://gist.githubusercontent.com/lucahammer/8ce36416fd4c8f6ddf4783c63e4bfa66/raw/ffaae52c5ca01a9f85bc6943dc6597ece10bae4c/twecoll
- versi original https://github.com/jdevoo/twecoll
3. Configure the script
Dalam script ada beberapa parameter. FMAX yang perlu di ubah. FMAX mendefinisikan berapa banyak account yang mungkin kita kumpulkan datanya.
Untuk percobaan awal ada baiknya set FMAX kecil saja, misalnya 20.
Penggunaan twecoll
Jalankan
python twecoll.py -h
Hasilnya
usage: twecoll.py [-h] [-s] [-v] {resolve,init,fetch,tweets,likes,edgelist} ... Twitter Collection Tool optional arguments: -h, --help show this help message and exit -s, --stats show Twitter throttling stats and exit -v, --version show program's version number and exit sub-commands: {resolve,init,fetch,tweets,likes,edgelist} resolve retrieve user_id for screen_name or vice versa init retrieve friends data for screen_name fetch retrieve friends of handles in .dat file tweets retrieve tweets likes retrieve likes edgelist generate graph in GML format
4. Run twecoll to collect data
Saat jalan pertama kali twecoll akan menanyakan consumer key & consumer secret. Data ini biasanya akan di simpan di .twecoll.
buat folder
mkdir fdat mkdir img
First run
cd ke lokasi twecoll. Jalankan misalnya (untuk userid yang di evaluasi luca)
python twecoll init luca
secara default twecoll akan mengumpulkan nama-nama yang di follow oleh luca.
Jika kita ingin sebalik-nya, mencek siapa saja yang memfollow luca, maka peritah init-nya adalah
python twecoll init luca -o
atau:
python twecoll init luca --followers
ini perintah ini akan membuat file SCREENNAME.dat yang akan berisi account yang di follow / mem-follow account yang sedang kita evaluasi.
fetch command
perintah fetch aman menyisir semua account yang di kumpulkan oleh init, juga mengumpulkan semua ID dari account yang di follow. Contoh,
python twecoll fetch luca
hasilnya akan di simpan pada folder fdat
edgelist command
Setelah semua data berhasil di kumpulkan, maka kita akan menggabungkannya menggunakan perintah edgelist. Hasil yang di peroleh adalah file .gml. Jika kita menginstalasi python package igraph, maka script akan memprint dan buat gambarnya. Perintah yang bisa digunakan adalah,
python twecoll edgelist luca -g -m
-m --missing untuk memasukan account yang tidak berhasil di collect datanya. -g --gdf untuk membuat .gdf file.
Maka kita akan memiliki,
SCREENNAME.gml SCREENNAME.gdf
File ini bisa di buka menggunakan Gephi.
Guide: Analyzing Twitter Networks with Gephi 0.9.1
This is by no means a complete guide, but a starting point for people who want to analyze Twitter networks with Gephi. medium.com HTTPError 429: Waiting for 15m to resume
Welcome to the world of API limits. Twitter allows 15 API calls per 15 minutes per user per app. Read more on their API rate limits. The script waits for 15 minutes whenever twitter returns an error, that the limit is reached. Depending on the amount of followings/followers it can take several hours to days to collect all the data. Because of that I run the script on a Raspberry Pi 2 to not have to leave my computer running all the time.
Update: Thanks to a comment by Jonáš Jančařík, I was able to improve the twecoll code to collect the initial list of accounts with up to 100 fewer API calls. The modified version linked above already has the improvement. I created a pull request for the original version as well so it should be soon available to everyone.