准备好在我的 Twitter 上关注美丽汤的概述

问题描述 投票:0回答:1

` 好吧,我认为可以扩展以下脚本来获取我的 Twitter 帐户的以下人员

from bs4 import BeautifulSoup
import requests

handle = input('Input the Twitter account name: ')
url = 'https://twitter.com/' + handle

temp = requests.get(url)
bs = BeautifulSoup(temp.text, 'html.parser')

try:
    # Extracting account name
    account_name = bs.find('a', {'class': 'ProfileHeaderCard-nameLink u-textInheritColor js-nav'}).text.strip()

    # Extracting followers count
    follow_box = bs.find('li', {'class': 'ProfileNav-item ProfileNav-item--followers'})
    followers = follow_box.find('a').find('span', {'class': 'ProfileNav-value'})
    followers_count = followers.get('data-count')

    print("Account Name: {}".format(account_name))
    print("Number of Followers: {}".format(followers_count))
except AttributeError:
    print('Account name not found or private account.')

上面的脚本将能够显示帐户名称和关注者数量。但是等等,我也想获得我的 Twitter 帐户的以下人员。

python web-scraping beautifulsoup twitter
1个回答
0
投票

g日。 好吧,我认为您可以执行类似以下代码所示的操作:第一天,您需要向适当的 URL 发出其他请求并解析 HTML 以提取信息。时间 Twitter 使用 JavaScript 动态加载关注者和关注信息:也就是说,我认为您可能需要使用像 Selenium 这样的工具来处理动态内容。 这是我们如何使用 Selenium 扩展上述脚本的示例:

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

# Input your Twitter username and password
twitter_username = input('Twitter Username: ')
twitter_password = input('Twitter Password: ')

# Set up a headless browser using Selenium
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')  # Update with your path to chromedriver
driver.get("https://twitter.com/login")

# Log in to Twitter
time.sleep(3)  # Let the page load
driver.find_element_by_name("session[username_or_email]").send_keys(twitter_username)
driver.find_element_by_name("session[password]").send_keys(twitter_password)
driver.find_element_by_css_selector("div[data-testid='LoginForm_Login_Button']").click()

# Wait for the login to complete
time.sleep(5)

# Navigate to the following page
driver.get("https://twitter.com/" + twitter_username + "/following")

# Scroll to load all following accounts (adjust the range based on the number of accounts you want to load)
for _ in range(5):
    driver.find_element_by_tag_name('body').send_keys(Keys.END)
    time.sleep(2)

等等等等..

© www.soinside.com 2019 - 2024. All rights reserved.