Twitter'dan belirlediğimiz anahtar kelimelerle ilgili tweetleri çekmek için yazdığımız bir bot aracıdır. Selenium ile insan davranışları sergilenerek istenildiği kadar veri çekilmesi sağlanmıştır. Anahtar kelimeleri aratma nedenimiz belirli sınıflara ait tweetleri hedef göstermek ve bu sayede ihtiyacımız olan corpusa daha kolay ulaşmaktır.
Selenium bir web page testing aracıdır. Asıl görevi veri çekmek değildir. Fakat aşağıdaki nedenlerden dolayı veri kazıma işlemi bu test aracı ile yapılmıştır.
- Twitter tasarımlarında html taglerinin id, name ve class bilgilerini sürekli değiştiren bir script kullanmaktadır.
- Ayrıca site içerisindeki gezinme hızına göre botları tespit ederek banlama yoluna gitmiştir.
Bu engelleri aşabilmek için twitter-scraper uygulaması içerisinde insani davranışlar düşünülerek bir algoritma kurgulanmıştır.
Selenium bir browser oturumu açıp işlemlerini yapmaktadır. Açacağı browser oturumu için bir firefox browser driver ına ihtiyaç duymaktadır.
brew install geckodriver
link : https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
Lütfen Python sürümünüzü '3.10' olarak ayarlayın.
Python versiyonunuzdan emin olmak için:
python3 --version
.env
dosyanızı oluşturun.
$ cd <project-directory>
$ touch .env
.env dosyasının içerisine twitter hesabınızın e-mail ve parola bilgilerini ekleyip kaydediniz.
EMAIL=<[email protected]>
PASSWORD=<your_password>
- Virtual environment oluşturunuz.
$ python -m venv <venv-name>
- Virtual environmentınızı aktive ediniz.
$ source <venv-name>/bin/activate
- Kütüphaneleri Yükleyiniz.
$ pip install -r requirements.txt
- keyword_list.txt oluşturunuz.
$ touch keyword_list.txt
Uygulamanın çalışması için gerekli adımlar tamamlanmıştır.
$ python3 main.py