我想在电报中获取帖子的查看次数。当我获取页面源时,javaScript 函数尚未执行,因此未启用数据。有什么帮助吗?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import selenium.webdriver.support.expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get("https://t.me/varzesh3/106369")
wait = WebDriverWait(driver, 30)
element = wait.until(EC.visibility_of_any_elements_located((By.CLASS_NAME,'tgme_widget_message_views')))
我什至用 Chrome 驱动程序尝试过,但没有改变。
这里有一个更好的想法。我可以将 bs4 与 url https://t.me/varzesh3/106369?embed=1一起使用。
更好,因为当您通过此 url 发送请求时,您现在拥有 iframe。
这是代码:
def generate_post_views(link):
# https://t.me/varzesh3/106432
html = requests.get(link + '?embed=1')
plain_text = html.text
soup = BeautifulSoup(plain_text, "html.parser")
try:
views = soup.find('span', {'class':'tgme_widget_message_views'}).get_text()
except AttributeError:
views = 0
return views
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句