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