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

如何解决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,所以很难理解。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?