Selenium ile Tweet Çekme

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Chrome()
browser.get("https://twitter.com/")
time.sleep(3)

girisYap = browser.find_element_by_xpath("//*[@id='doc']/div/div[1]/div[1]/div[2]/div[2]/div/a[2]")
girisYap.click()
time.sleep(5)

username = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")
password = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[2]/input")

username.send_keys("******")
password.send_keys("******")
time.sleep(3)

login = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/div[2]/button")
login.click()
time.sleep(5)

searchArea = browser.find_element_by_xpath("//*[@id='react-root']/div/div/div/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input")
searchArea.send_keys("#yazilimayolver")
searchArea.send_keys(Keys.ENTER)

elements = browser.find_elements_by_css_selector(".css-901oao.css-16my406.r-1qd0xha.r-ad9z0x.r-bcqeeo.r-qvutc0")
for x in elements:
    print("************************")
    print(x.text)
time.sleep(10)

browser.back()
time.sleep(3)

browser.close()

Merhaba. Kodlar sonucunda sadece sol taraftaki header spanlarındaki css leri alıyor. anasayfa bilidirimler keşfet vs. alıyor sadece. tweetleri alamıyorum. tweetlerde aynı css e sahip bu arada.

Lütfen kodlarınızı bu linke göre okunaklı hale getirin.

1 Beğeni
elements = browser.find_elements_by_css_selector(".css-901oao.css-16my406.r-1qd0xha.r-ad9z0x.r-bcqeeo.r-qvutc0")

Bu kod belirtilen sınıfların hepsini içeren elementleri buluyor. Yani aradığınız bir element bu sınıfların birine bile sahip değilse bu fonksiyon tarafından döndürülmeyecektir. Eğer tweetler bu sınıfların hepsini içeriyorsa fonksiyon tarafından döndürülmesi lazım.

Genel olarak kodunuza baktığımda çoğu elementi xpath ile bulduğunuzu görüyorum. Eğer mümkünse elementleri id veya sınıflarına göre , o da olmaz ise parentlerine göre bulmanız uzun vadede daha faydalı olacaktır. Siteye herhangi bir güncelleme geldiğinde sadece bir elementin yeri bile değişse diğer çoğu elementin de xpath değeri değişir. Yani twitter’a bir güncelleme gelir ve site yapısında ufak değişimler yapılırsa kodunuz çalışamayabilir.

1 Beğeni

Merhabalar,
Daha önce selenium ile tweet çekme üzerine çalışmıştım.

tweets=driver.find_elements_by_tag_name('p')

Bu şekilde tweetleri almaya yeterliydi ama bu şekilde yazıp bırakırsan 10-15 tweet çeker ve durur.
Tam olarak ne istediğini bilmiyorum ama daha çok tweet’e ihtiyacın varsa scroll atmayı deneyip bu işlemi tekrarlayabilirsin.


SCROLL_PAUSE_TIME = 1
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    # Scroll down to bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")

    # Wait to load page
    time.sleep(SCROLL_PAUSE_TIME)


    # Calculate new scroll height and compare with last scroll height
    new_height = driver.execute_script("return document.body.scrollHeight")

    # break condition
    if new_height == last_height:
        
        break
    last_height = new_height
    a= driver.find_elements_by_xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div/div/div[2]/div/section/div/div/div/div[25]/div/article/div/div[2]/div[2]/div[3]/span')
    for i in a:print(i.text)

İnternet hızına bağlı olarak delay değerini -SCROLL_PAUSE_TIME adlı değişkeni-değiştirebilirsin.
İyi günler.

Merhaba ben python selenium ile girilen twitter hesabının en son attığı tiwiti çekmek istiyorum nasıl yapa bilirim

selenium excel vba için aşağıdaki kodlar doğrumudur.

last_height = twit.ExecuteScript("return document.body.scrollHeight")
Do While True
   'Scroll down to bottom
    twit.ExecuteScript ("window.scrollTo(0, document.body.scrollHeight)")
    twit.Wait 1000
   'Calculate new scroll height and compare with last scroll height
    new_height = twit.ExecuteScript("return document.body.scrollHeight")
    ' break condition
    If new_height <> last_height Then
        Exit Do
    End If
    Loop
1 Beğeni

Pardon Python a o kadar hakim değilim Selenium bir kütüphanemidir kütüphane ise yükleyebileceğim bir link atarımsınız teşekkürler.

bende şuan başladım arkadaşım bişeyler öğretecek diye umuyorum siz bişeyler öğrenebildinizmi