Python(html) 使用 bf4 从动态变化的 div/span 获取数据

我需要从https://cryptowat.ch/获取实时 BTC ,但是当程序运行 5 次时它将停止,当我检查该站点时我被禁止,因为有很多请求。我如何在没有的情况下获取数据用 Python 刷新整个网站?

这是代码:

import bs4

import requests

from bs4 import BeautifulSoup


def btc():

    r= requests.get("https://cryptowat.ch/")


    soup = bs4.BeautifulSoup(r.text, "lxml")


    number = soup.find_all('a',{'class':'_1roDdymkPS2zplXEDcBm0L _3z3AqahoD2pN2R7vFue-0o pointer'})[1].find("span").text

    #btc = [span.text for span in number]

    return number

"""while True:

    print("A jelenlegi BTC ár : "+str(bekero))"""



while True:

    print("A jelenlegi BTC ár : "+str(btc()))

    time.sleep(3)


手掌心
浏览 214回答 1
1回答

慕森王

你应该使用 selenium 和 chrome webdriver 基本上,你要做的(使用 python 代码)是打开一个 chrome 窗口,将其定向到某个网站,如果你愿意,可以与网页进行交互,然后读取页面内容并将其传递给 BS4。请注意,请求库不会加载动态内容。例子:from selenium import webdriverbrowser = webdriver.Chrome()browser.get(url)source = browser.find_element_by_xpath("/html").get_attribute('outerHTML')然后将页面源传给BS4
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python