【发布时间】:2020-07-01 00:48:24
【问题描述】:
我正在尝试抓取此页面:https://www.bitmex.com/app/trade/XBTUSD 获取页面左侧的未平仓合约数据。我在这个阶段
import bs4
from bs4 import BeautifulSoup
import requests
import re
from selenium import webdriver
import urllib.request
r = requests.get('https://www.bitmex.com/app/trade/XBTUSD')
url = "https://www.bitmex.com/app/trade/XBTUSD"
page = urllib.request.urlopen('https://www.bitmex.com/app/trade/XBTUSD')
soup = bs4.BeautifulSoup(r.text, 'xml')
resultat = soup.find_all(text=re.compile("Open Interest"))
driver = webdriver.Firefox(executable_path='C:\\Users\\Samy\\Desktop\\geckodriver\\geckodriver.exe')
results = driver.find_elements_by_xpath("//*[@class='contractStats hoverContainer block']//*[@class='value']/html/body/div[1]/div/span/div[1]/div/div[2]/li/ul/div/div/div[2]/div[4]/span[2]/span/span[1]")
print(len(results))
结果我得到 0。我为results 变量(也是driver.find_elements_by_xpath("//span[@class='price']/text()")尝试了几种不同的方法,但似乎找不到方法。我知道问题出在我复制 XML 路径时,但尽管阅读了Why does this xpath fail using lxml in python? 和https://stackoverflow.com/a/43095252/7937578,但似乎无法清楚地理解问题所在
我只使用通过复制获得的 XML 路径,但在阅读了这些 SO 问题后,我在 begining[@class....] 添加了部分,但我遗漏了一些东西。如果您知道如何提供帮助,谢谢!
【问题讨论】:
标签: python selenium web-scraping