Selenium Web驱动程序,用于使用Python进行电报数据提取

问题描述

大家好,我想提取自动Telegram群聊消息,使用Selenium时,我使用Telegram登录部分进行了处理。我不想使用Telegram机器人api进行此操作。Selenium的登录部分已成功完成,之后可以可以使用BeutifulSoup进行数据提取吗?

我想向您提供有关下一步工作的信息?我想通过分享您的想法,而不是编写代码,而是尽快分享它们的状态来在项目中取得进展。

下面的登录部分

def login():
    print("Connecting to Telegram Web,please wait")

    browser = webdriver.Firefox(executable_path='/usr/bin/geckodriver')


    browser.get("https://web.telegram.org/#/login")

    sleep(3)

    phone_input_code = browser.find_element_by_name("phone_country")
    phone_input_number = browser.find_element_by_name("phone_number")

    country_code = input("Country code: ")
    phone_number = input("Phone number: ")

    phone_input_code.send_keys(Keys.BACKSPACE + Keys.BACKSPACE + country_code + Keys.ENTER)
    phone_input_number.send_keys(Keys.BACKSPACE + phone_number + Keys.ENTER)

    # Wait for the page to load
    sleep(5)

    confirm_input = browser.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]/form/div[4]/input")
    confirm_code = input("Confirmation code (sent via SMS): ")
    confirm_input.send_keys(confirm_code + Keys.ENTER)

    sleep(5)
    password_input = browser.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]/form/div[1]/input")
    password_send = input("Please Login Password:")
    password_input.send_keys(password_send + Keys.ENTER)
    return browser

登录后打开的Telegram Web界面中,我检查了组消息在html中的显示方式,但是我遇到了麻烦。HTML解析过程是否可以为我们提供解决方案?我想知道,BeautifulSoup可以做这份工作吗?如果硒可以使用哪些功能

我正在等待您的想法和解决方法。提前非常感谢您。 (请不要反感)

解决方法

基本上,您需要通过从硒中获取html来初始化bs4(BeautifulSoup)变量。

from bs4 import BeautifulSoup
content = driver.page_source
soup = BeautifulSoup(content,"html.parser")

然后,您可以使用soup变量,如下所示:

if soup.find('li',class_="pagination-paginationMeta") is not None:
    pageCount = int(filterPageNumber(
    soup.find('li',class_="pagination-paginationMeta").text))
else:
    pageCount = 1

您好我已经使用Selenium,requests,bs4 for Myntra实现了全功能的刮板,您可以在此处Github-Repo进行签出 (P.S.我没有做适当的文档,并且代码实际上是RAW,所以很难理解。)