首页 文章

使用Python和Selenium的刮表

提问于
浏览
-1

我试图用python刮下面的表 . 尝试拉html标签找到元素 id_dt1_NGY00 等等但是一旦页面被填充就无法找到它,所以有人告诉我使用Selenium并且设法刮掉一些数据 .

https://www.insidefutures.com/markets/data.php?page=quote&sym=ng&x=13&y=8

这些数字每10分钟更新一次,因此这个网站是动态的 . 使用下面的代码,但是它以线性格式打印出所有内容,而不是以表格形式显示为行和列的格式 . 下面包括两部分样本输出

Contract
Last  
Change
Open
High  
Low
Volume
Prev. Stl.
Time
Links

5月'21(NGK21)

2.550s
+0.006
2.550
2.550
2.550
1
2.544
05/21/18
Q / C / O

6月21日(NGM21)

2.576s
+0.006
0.000
2.576
2.576
0
2.570
05/21/18
Q / C / O

代码低于导入时间从bs4导入BeautifulSoup从selenium导入webdriver导入pandas为pd

browser = webdriver.Chrome(executable_path =“C:\ Users \ siddk \ PycharmProjects \ WebSraping \ venv \ selenium \ webdriver \ chromedriver.exe”)

browser.get(“https://www.insidefutures.com/markets/data.php?page=quote&sym=ng&x=14&y=16”)

html = browser.page_source soup = BeautifulSoup(html,'html.parser')

th_tags中的th_tags = soup.find_all('tr'):print(th.get_text())

我想在Panda中提取这些数据并每天分析平均值等 . 请帮忙 . 通过多次迭代编码,我已经耗尽了自己的力量 .

1 回答

  • 1

    尝试使用以下脚本来获取表格数据 . 有必要找到包含相同表但没有动态生成的right url,这样您就可以在不使用任何浏览器模拟器的情况下进行操作 .

    搏一搏:

    from bs4 import BeautifulSoup
    import requests
    
    url = "https://shared.websol.barchart.com/quotes/quote.php?page=quote&sym=ng&x=13&y=8&domain=if&display_ice=1&enabled_ice_exchanges=&tz=0&ed=0"
    
    res = requests.get(url)
    soup = BeautifulSoup(res.text,"lxml")
    for tr in soup.find(class_="bcQuoteTable").find_all("tr"):
        data = [item.get_text(strip=True) for item in tr.find_all(["th","td"])]
        print(data)
    

    结果如下:

    ['Contract', 'Last', 'Change', 'Open', 'High', 'Low', 'Volume', 'Prev. Stl.', 'Time', 'Links']
    ['Cash (NGY00)', '2.770s', '+0.010', '0.000', '2.770', '2.770', '0', '2.760', '05/21/18', 'Q/C/O']
    ["Jun \\'18 (NGM18)", '2.901', '-0.007', '2.902', '2.903', '2.899', '138', '2.908', '17:11', 'Q/C/O']
    ["Jul \\'18 (NGN18)", '2.927', '-0.009', '2.928', '2.930', '2.926', '91', '2.936', '17:11', 'Q/C/O']
    ["Aug \\'18 (NGQ18)", '2.944', '-0.008', '2.945', '2.947', '2.944', '42', '2.952', '17:10', 'Q/C/O']
    

相关问题