برنامه نویسی

خراش دادن نظرات توییتر با سلنیوم (پایتون): راهنمای گام به گام

Summarize this content to 400 words in Persian Lang
در دنیای پر از داده امروزی، همه از رسانه های اجتماعی برای بیان خود و مشارکت در صدای عمومی استفاده می کنند. این اطلاعات بسیار ارزشمندی است که فقط به صورت عمومی در دسترس همه است، شما می توانید بینش، بازخورد و توصیه های بسیار خوبی را از این افکار عمومی جمع آوری کنید.به همین دلیل است که من این راهنمای گام به گام را برای شما آورده‌ام تا بدون کار زیاد، نظرات را در توییتر بنویسید.

آنچه شما نیاز خواهید داشت:

یک ویرایشگر متن – یک زبان برنامه نویسی که سلنیوم پشتیبانی می کند (من از پایتون استفاده خواهم کرد) – یک حساب توییتر (ترجیحاً حساب اصلی شما نباشد)

**هشدار:

استفاده نادرست از WebScraping می تواند در برابر برخی از شرایط خدمات غیراخلاقی و غیرقانونی باشد که می تواند منجر به ممنوعیت دائمی آدرس IP و موارد دیگر شود. بدون نیت بد از این ابزار WebScraping استفاده کنید**

مرحله 1: راه اندازی

برای شروع، یک دایرکتوری جدید با یک محیط مجازی ایجاد می کنیم و آن را فعال می کنیم.

> C:\Users\Blogs\Webscraping> python -m venv .
> C:\Users\Blogs\Webscraping> Scripts\activate

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این می تواند با سیستم عامل شما متفاوت باشد، اگر با پایتون و محیط های مجازی آشنایی ندارید، برای راهنمایی بیشتر به اینجا مراجعه کنید.

خوب، حالا که محیط ما در حال اجرا است، سلنیوم، وابستگی اصلی ما را نصب می کنم.

> pip install selenium

اکنون که همه ابزارهای خود را آماده کرده ایم، کدنویسی می کنیم

مرحله دوم: فرآیند کد ما

سلنیوم یک ابزار رایگان برای فرآیندهای اتوماسیون در یک برنامه وب است. در این موارد، ما از Selenium WebDriver استفاده خواهیم کرد، که اساساً ابزاری است که به شما امکان می دهد اسکریپت های مفید را در مرورگرهای مختلف اجرا کنید. در مورد ما، از کروم استفاده خواهیم کرد.

روند اصلی ما به این صورت خواهد بود:(main.py)

from twitter import Twitter
from selenium import web driver
from time import sleep

##Desired post to scrape comments
URL_POST = “**”

##Account credentials
username = “**”
email = “**”
password = “**”

driver = webdriver.Chrome()

Twitter(driver).login()
Twitter(driver).get_post(URL_POST)
driver.quit()

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Selenium WebDriver به ما اجازه می دهد کارهای زیادی را در یک مرورگر انجام دهیم، اما اجازه دهید این کار را برای مرحله بعدی رها کنیم. در حال حاضر توصیه می کنم یک حساب کاربری جدید در توییتر ایجاد کنید و پستی را که می خواهید جستجو کنید جستجو کنید. بله، می دانم، ما چیزهایی مانند کلاس توییتر را تعریف نکرده ایم، اما در حال حاضر، بهتر است درایور خود را به عنوان استدلال پاس کنید.

مرحله 3: کلاس توییتر

این بزرگترین و پیچیده ترین بخش برنامه ما خواهد بود. این سه روش را پوشش می دهد: ورود به سیستم توییتر get_post و scrape.

ابتدا یک سازنده با یک متغیر ورودی تعریف می کنیم:

راننده: درایور سلنیوم ما که در main.py شروع کردیم

-Wait: یک روش مفید برای جستجوی برچسب های HTML که هنوز بارگذاری نشده اند (twitter.py)

“واردات سیستماز واردات csv_exports twitter_post_to_csvاز زمان واردات خواباز selenium.webdriver.common.by import Byاز help_functions import validate_spanاز selenium.webdriver.support.ui import WebDriverWaitاز selenium.webdriver.support import expect_conditions به عنوان EC

کلاس توییتر:

def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(self.driver, 10)`

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

روش ورودبرای دسترسی به نظرات توییتر، باید وارد شوید و متأسفانه یک درایور وب اعتبارنامه ها را به خاطر نمی آورد. پس بیایید با خودکار کردن فرآیند ورود خود شروع کنیم…

کد

`def login(self, email, username, password):
drive = self.driver
wait = self.wait

##Going to the login page URL
drive.get(“https://x.com/i/flow/login”)

##Sends email credential to the first form input
input_email = wait.until(EC.presence_of_element_located((By.NAME, “text”)))
input_email.clear()
input_email.send_keys(email)
sleep(3)
##Submits form
button_1 = drive.find_elements(By.CSS_SELECTOR, “button div span span”)
button_1[1].click()

##Sends username credential to the second form input
input_verification = wait.until(EC.presence_of_element_located((By.NAME, “text”)))
input_verification.clear()
sleep(3)
input_verification.send_keys(username)
##Submits form
button_2 = drive.find_element(By.CSS_SELECTOR, “button div span span”)
sleep(3)
button_2.click()

##Sends username credential to the form input
input_password = wait.until(EC.presence_of_element_located((By.NAME, “password”)))
input_password.clear()
sleep(3)
input_password.send_keys(password)
sleep(3)

#Submits last form
button_3 = drive.find_element(By.CSS_SELECTOR, “button div span span”)
button_3.click()
sleep(5)`

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا فرم هایی هستند که برنامه شما پر می کند:

فرم اول:

فرم دوم

شکل سوم

درهم شکستن

روش ما منتظر یک، مانند input_email است، زیرا این اولین درخواست ما به URL است، همه چیز باید در HTML کامل بارگذاری شود.

ما از متد find_elements() از درایور وب برای تعیین محل ورودی ها در HTML استفاده می کنیم.

روش ما به طور سیستماتیک از طریق هر یک از فرم ها یک به یک کلیدهای ورودی و ارسال را با متدهای .send_keys() و .click() انجام می دهد. ما همچنین از .clear() استفاده می کنیم تا مطمئن شویم که جعبه ورودی ما حاوی اطلاعاتی در هنگام بارگذاری صفحه نیست.

ما با موفقیت وارد سیستم شدیم.

توجه داشته باشید*فرم دوم تنها پس از چند بار استفاده از درایور وب سلنیوم برای تعامل با صفحه ورود به سیستم توییتر ظاهر می شود. توییتر تشخیص می دهد که یک ربات وارد می شود و اعداد را خیلی سریع تایپ می کند، بنابراین این صفحه دوم فقط زمانی ظاهر می شود که یک ربات شناسایی شود. پس از چند بار استفاده از این برنامه، همیشه هنگام ورود به حساب اسکرپینگ خود، این نشان داده می شود.

خراش دادناین روشی است که نظرات یک پست را بازیابی می کند. برای این، ما محدودیت های بزرگ و برخی مشکلات برای حل داریم. اولین مورد این است که هیچ راهی برای هدف قرار دادن فقط نظرات توییتر وجود ندارد. نظرات توییتر در داخل هستند، که توییتر دوست دارد برای چیزهای زیادی از آن استفاده کند.

بهترین راهی که می توانم برای دریافت نظرات توییتر پیدا کنم استفاده از این روش است: “drive.find_elements(By.XPATH,”//span[@class=’css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3′]”)!” به عبارت دیگر، استفاده از XML با کلاس ها. این مقدار زیادی داده های غیر ضروری را برمی گرداند و ما باید تمیز کردن زیادی انجام دهیم.

مشکل دوم، کمی شدیدتر، واکنش‌های پویا توییتر است.هنگام پیمایش به پایین یا بالا، توییتر HTML را از سند فعلی بارگیری یا حذف می‌کند، بنابراین برای دریافت هر نظر ممکن، قبل از اینکه بخواهیم دوباره اسکرول کنیم، باید به آرامی پیش برویم و عناصر را استخراج کنیم.

اکنون که این مشکل را کشف کردیم، اجازه دهید دست به کار شویم.

def scrape(self):drive = self.drivercontainers = drive.find_elements(By.XPATH,”//span[@class=”css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3″]”)##Scrape data and store it in listscraped_data = []temporary_1 = “”temporary_2 = “”index = 0index_dict = 0while index
text = containers[index].textif text:if text[0] == “@”:temporary_1 = textindex_dict = index_dict + 1if validate_span(text) is True and index_dict == 1:temporary_2 = textarr_push = {“username”: temporary_1,”post”: temporary_2}scraped_data.append(arr_push)temporary_2, temporary_1 = “”, “”index_dict = 0index = index + 1return scraped_data

این کد همه نظرات را از سند بارگیری شده در حال حاضر بازیابی می کند. با حلقه زدن از طریق شرایط خاص و افزودن روش‌های اضافی مانند validate_span()، توانستیم با موفقیت، داده‌ها را همیشه پاک کنیم. اگر در الگوریتم با مشکلی مواجه شدید، به من اطلاع دهید.

تابع ()validate_span:(useful_functions.py)

`def validate_span(span):اگر دهانه[0] == “.” یا دهانه[0] == “·”:بازگشت نادرستاگر دهانه[0] == “@”:بازگشت نادرستif validate_number(span):بازگشت درست استبازگشت نادرست

def validate_number(string):اگر رشته[len(string) – 1] == “k”:رشته = رشته[0: len(string) – 1]string = string.replace(.”، “”)شاخص = 0برای i در رشته:اگر (i == “1” یا i == “2” یا i == “3” یا i == “4” یا i == “5”یا i == “6” یا i == “7” یا i == “8” یا i == “9” یا i == “0”):شاخص = شاخص + 1

if len(string)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همه عناصر ناخواسته ما معمولاً به دنبال شمارش هستند، مانند تعداد یا نقاط تصادفی و فضای خالی. با بررسی چند شرط، تمیز کردن این کار آسان است.

روش get_post

این روشی است که در آن حلقه می زنیم تا به انتهای صفحه برسیم،از روش خراش دادن در هر تکرار استفاده کنید تا مطمئن شوید که تمام داده ها خراشیده شده اند.

`def get_post(self, url):

drive = self.driver
wait = self.wait

drive.get(url)
sleep(3)
data = [] javascript = “let inner_divs = document.querySelectorAll(‘[” “data-testid=\”cellInnerDiv\”]’);” + (“window”
“.scrollTo(”
“0, ”
“inner_divs[0].scrollHeight);”) + “return inner_divs[2].scrollHeight;”

previous_height = drive.execute_script(“return document.body.scrollHeight”)
avg_scroll_height = int(drive.execute_script(javascript)) * 13
while True:
data = data + self.scrape()
drive.execute_script(“window.scrollTo(0, (document.body.scrollHeight +”+str(avg_scroll_height)+” ));”)
sleep(3)
new_height = drive.execute_script(“return document.body.scrollHeight”)
if new_height == previous_height:
break
previous_height = new_height`

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با تزریق جاوا اسکریپت به درایور و حلقه زدن در حالی که ارتفاع اسکرول سند یکسان نیست، می‌توانیم داده‌ها را در هر قسمت از صفحه خراش دهیم.

در نهایت، می توانیم با داده ها کار مفیدی انجام دهیم. در مورد من، فقط می خواهم آن را چاپ کنم.

for I in data:print(I)

اکنون تنها کاری که باید انجام دهید این است که URL مورد نظر خود را تغییر دهید و فایل اصلی را اجرا کنید، سپس منتظر بمانید تا اطلاعات شما برگردانده شود.و شما آن را انجام داده اید! شما با موفقیت یک وب scraper برای توییتر ایجاد کردید. نیازی به گفتن نیست، اگر نمی‌خواهید دچار مشکل شوید، از فناوری‌های اسکراپینگ به روش‌های قانونی و اخلاقی استفاده کنید…

در خاتمه، نظرات توییتر می توانند بسیار کارآمد حذف شوند، اما همیشه باید با استفاده صحیح قانونی انجام شوند، جدای از این، داده های توییتر بسیار ارزشمند هستند و می توانند به شما در درک افکار عمومی در یک موضوع کمک کنند.

در دنیای پر از داده امروزی، همه از رسانه های اجتماعی برای بیان خود و مشارکت در صدای عمومی استفاده می کنند. این اطلاعات بسیار ارزشمندی است که فقط به صورت عمومی در دسترس همه است، شما می توانید بینش، بازخورد و توصیه های بسیار خوبی را از این افکار عمومی جمع آوری کنید.
به همین دلیل است که من این راهنمای گام به گام را برای شما آورده‌ام تا بدون کار زیاد، نظرات را در توییتر بنویسید.

آنچه شما نیاز خواهید داشت:

  • یک ویرایشگر متن – یک زبان برنامه نویسی که سلنیوم پشتیبانی می کند (من از پایتون استفاده خواهم کرد) – یک حساب توییتر (ترجیحاً حساب اصلی شما نباشد)

**هشدار:

استفاده نادرست از WebScraping می تواند در برابر برخی از شرایط خدمات غیراخلاقی و غیرقانونی باشد که می تواند منجر به ممنوعیت دائمی آدرس IP و موارد دیگر شود. بدون نیت بد از این ابزار WebScraping استفاده کنید**

مرحله 1: راه اندازی

برای شروع، یک دایرکتوری جدید با یک محیط مجازی ایجاد می کنیم و آن را فعال می کنیم.

 > C:\Users\Blogs\Webscraping>  python -m venv .
 > C:\Users\Blogs\Webscraping>  Scripts\activate

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این می تواند با سیستم عامل شما متفاوت باشد، اگر با پایتون و محیط های مجازی آشنایی ندارید، برای راهنمایی بیشتر به اینجا مراجعه کنید.

خوب، حالا که محیط ما در حال اجرا است، سلنیوم، وابستگی اصلی ما را نصب می کنم.

> pip install selenium

اکنون که همه ابزارهای خود را آماده کرده ایم، کدنویسی می کنیم

مرحله دوم: فرآیند کد ما

سلنیوم یک ابزار رایگان برای فرآیندهای اتوماسیون در یک برنامه وب است. در این موارد، ما از Selenium WebDriver استفاده خواهیم کرد، که اساساً ابزاری است که به شما امکان می دهد اسکریپت های مفید را در مرورگرهای مختلف اجرا کنید. در مورد ما، از کروم استفاده خواهیم کرد.

روند اصلی ما به این صورت خواهد بود:
(main.py)

from twitter import Twitter
from selenium import web driver
from time import sleep

##Desired post to scrape comments
URL_POST = "**"


##Account credentials
username = "**"
email = "**"
password = "**"

driver = webdriver.Chrome()

Twitter(driver).login()
Twitter(driver).get_post(URL_POST)
driver.quit()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Selenium WebDriver به ما اجازه می دهد کارهای زیادی را در یک مرورگر انجام دهیم، اما اجازه دهید این کار را برای مرحله بعدی رها کنیم. در حال حاضر توصیه می کنم یک حساب کاربری جدید در توییتر ایجاد کنید و پستی را که می خواهید جستجو کنید جستجو کنید. بله، می دانم، ما چیزهایی مانند کلاس توییتر را تعریف نکرده ایم، اما در حال حاضر، بهتر است درایور خود را به عنوان استدلال پاس کنید.

مرحله 3: کلاس توییتر

این بزرگترین و پیچیده ترین بخش برنامه ما خواهد بود. این سه روش را پوشش می دهد: ورود به سیستم توییتر get_post و scrape.

ابتدا یک سازنده با یک متغیر ورودی تعریف می کنیم:

  • راننده: درایور سلنیوم ما که در main.py شروع کردیم

-Wait: یک روش مفید برای جستجوی برچسب های HTML که هنوز بارگذاری نشده اند
(twitter.py)

“واردات سیستم
از واردات csv_exports twitter_post_to_csv
از زمان واردات خواب
از selenium.webdriver.common.by import By
از help_functions import validate_span
از selenium.webdriver.support.ui import WebDriverWait
از selenium.webdriver.support import expect_conditions به عنوان EC

کلاس توییتر:

def __init__(self, driver):
    self.driver = driver
    self.wait = WebDriverWait(self.driver, 10)`
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

روش ورود
برای دسترسی به نظرات توییتر، باید وارد شوید و متأسفانه یک درایور وب اعتبارنامه ها را به خاطر نمی آورد. پس بیایید با خودکار کردن فرآیند ورود خود شروع کنیم…

کد

`def login(self, email, username, password):
    drive = self.driver
    wait = self.wait


    ##Going to the login page URL
    drive.get("https://x.com/i/flow/login")



    ##Sends email credential to the first form input
    input_email = wait.until(EC.presence_of_element_located((By.NAME, "text")))
    input_email.clear()
    input_email.send_keys(email)
    sleep(3)
    ##Submits form
    button_1 = drive.find_elements(By.CSS_SELECTOR, "button div span span")
    button_1[1].click()

    ##Sends username credential to the second form input
    input_verification = wait.until(EC.presence_of_element_located((By.NAME, "text")))
    input_verification.clear()
    sleep(3)
    input_verification.send_keys(username)
    ##Submits form
    button_2 = drive.find_element(By.CSS_SELECTOR, "button div span span")
    sleep(3)
    button_2.click()

    ##Sends username credential to the form input
    input_password = wait.until(EC.presence_of_element_located((By.NAME, "password")))
    input_password.clear()
    sleep(3)
    input_password.send_keys(password)
    sleep(3)

    #Submits last form
    button_3 = drive.find_element(By.CSS_SELECTOR, "button div span span")
    button_3.click()
    sleep(5)`
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا فرم هایی هستند که برنامه شما پر می کند:

  1. فرم اول:

توضیحات تصویر

  1. فرم دوم

توضیحات تصویر

  1. شکل سوم

توضیحات تصویر

درهم شکستن

روش ما منتظر یک، مانند input_email است، زیرا این اولین درخواست ما به URL است، همه چیز باید در HTML کامل بارگذاری شود.

ما از متد find_elements() از درایور وب برای تعیین محل ورودی ها در HTML استفاده می کنیم.

روش ما به طور سیستماتیک از طریق هر یک از فرم ها یک به یک کلیدهای ورودی و ارسال را با متدهای .send_keys() و .click() انجام می دهد. ما همچنین از .clear() استفاده می کنیم تا مطمئن شویم که جعبه ورودی ما حاوی اطلاعاتی در هنگام بارگذاری صفحه نیست.

ما با موفقیت وارد سیستم شدیم.

توجه داشته باشید*
فرم دوم تنها پس از چند بار استفاده از درایور وب سلنیوم برای تعامل با صفحه ورود به سیستم توییتر ظاهر می شود. توییتر تشخیص می دهد که یک ربات وارد می شود و اعداد را خیلی سریع تایپ می کند، بنابراین این صفحه دوم فقط زمانی ظاهر می شود که یک ربات شناسایی شود. پس از چند بار استفاده از این برنامه، همیشه هنگام ورود به حساب اسکرپینگ خود، این نشان داده می شود.

خراش دادن
این روشی است که نظرات یک پست را بازیابی می کند. برای این، ما محدودیت های بزرگ و برخی مشکلات برای حل داریم. اولین مورد این است که هیچ راهی برای هدف قرار دادن فقط نظرات توییتر وجود ندارد. نظرات توییتر در داخل هستند، که توییتر دوست دارد برای چیزهای زیادی از آن استفاده کند.

بهترین راهی که می توانم برای دریافت نظرات توییتر پیدا کنم استفاده از این روش است: “drive.find_elements(By.XPATH,”//span[@class=’css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3′]”)!” به عبارت دیگر، استفاده از XML با کلاس ها. این مقدار زیادی داده های غیر ضروری را برمی گرداند و ما باید تمیز کردن زیادی انجام دهیم.

مشکل دوم، کمی شدیدتر، واکنش‌های پویا توییتر است.
هنگام پیمایش به پایین یا بالا، توییتر HTML را از سند فعلی بارگیری یا حذف می‌کند، بنابراین برای دریافت هر نظر ممکن، قبل از اینکه بخواهیم دوباره اسکرول کنیم، باید به آرامی پیش برویم و عناصر را استخراج کنیم.

اکنون که این مشکل را کشف کردیم، اجازه دهید دست به کار شویم.

def scrape(self):
drive = self.driver
containers = drive.find_elements(By.XPATH,
"//span[@class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3"]")
##Scrape data and store it in list
scraped_data = []temporary_1 = ""
temporary_2 = ""
index = 0
index_dict = 0
while index
text = containers[index].text
if text:
if text[0] == "@":
temporary_1 = text
index_dict = index_dict + 1
if validate_span(text) is True and index_dict == 1:
temporary_2 = text
arr_push = {
"username": temporary_1,
"post": temporary_2
}
scraped_data.append(arr_push)
temporary_2, temporary_1 = "", ""
index_dict = 0
index = index + 1
return scraped_data

این کد همه نظرات را از سند بارگیری شده در حال حاضر بازیابی می کند.
با حلقه زدن از طریق شرایط خاص و افزودن روش‌های اضافی مانند validate_span()، توانستیم با موفقیت، داده‌ها را همیشه پاک کنیم. اگر در الگوریتم با مشکلی مواجه شدید، به من اطلاع دهید.

تابع ()validate_span:
(useful_functions.py)

`def validate_span(span):
اگر دهانه[0] == “.” یا دهانه[0] == “·”:
بازگشت نادرست
اگر دهانه[0] == “@”:
بازگشت نادرست
if validate_number(span):
بازگشت درست است
بازگشت نادرست

def validate_number(string):
اگر رشته[len(string) – 1] == “k”:
رشته = رشته[0: len(string) – 1]string = string.replace(.”، “”)
شاخص = 0
برای i در رشته:
اگر (i == “1” یا i == “2” یا i == “3” یا i == “4” یا i == “5”
یا i == “6” یا i == “7” یا i == “8” یا i == “9” یا i == “0”):
شاخص = شاخص + 1

if len(string) 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همه عناصر ناخواسته ما معمولاً به دنبال شمارش هستند، مانند تعداد یا نقاط تصادفی و فضای خالی. با بررسی چند شرط، تمیز کردن این کار آسان است.

روش get_post

این روشی است که در آن حلقه می زنیم تا به انتهای صفحه برسیم،
از روش خراش دادن در هر تکرار استفاده کنید تا مطمئن شوید که تمام داده ها خراشیده شده اند.

`def get_post(self, url):

    drive = self.driver
    wait = self.wait

    drive.get(url)
    sleep(3)
    data = []
    javascript = "let inner_divs = document.querySelectorAll('[" "data-testid=\"cellInnerDiv\"]');" + ("window"
                                                                                                       ".scrollTo("
                                                                                                       "0, "
                                                                                                       "inner_divs[0].scrollHeight);") + "return inner_divs[2].scrollHeight;"

    previous_height = drive.execute_script("return document.body.scrollHeight")
    avg_scroll_height = int(drive.execute_script(javascript)) * 13
    while True:
        data = data + self.scrape()
        drive.execute_script("window.scrollTo(0, (document.body.scrollHeight +"+str(avg_scroll_height)+" ));")
        sleep(3)
        new_height = drive.execute_script("return document.body.scrollHeight")
        if new_height == previous_height:
            break
        previous_height = new_height`
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با تزریق جاوا اسکریپت به درایور و حلقه زدن در حالی که ارتفاع اسکرول سند یکسان نیست، می‌توانیم داده‌ها را در هر قسمت از صفحه خراش دهیم.

در نهایت، می توانیم با داده ها کار مفیدی انجام دهیم. در مورد من، فقط می خواهم آن را چاپ کنم.

for I in data:
print(I)

اکنون تنها کاری که باید انجام دهید این است که URL مورد نظر خود را تغییر دهید و فایل اصلی را اجرا کنید، سپس منتظر بمانید تا اطلاعات شما برگردانده شود.
و شما آن را انجام داده اید! شما با موفقیت یک وب scraper برای توییتر ایجاد کردید. نیازی به گفتن نیست، اگر نمی‌خواهید دچار مشکل شوید، از فناوری‌های اسکراپینگ به روش‌های قانونی و اخلاقی استفاده کنید…

در خاتمه، نظرات توییتر می توانند بسیار کارآمد حذف شوند، اما همیشه باید با استفاده صحیح قانونی انجام شوند، جدای از این، داده های توییتر بسیار ارزشمند هستند و می توانند به شما در درک افکار عمومی در یک موضوع کمک کنند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا