gpt4 book ai didi

python - 从 BSE 网站提取数据

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:19 26 4
gpt4 key购买 nike

如何使用 Python 3 提取证券 ID、证券代码、组/指数、Wtd.Avg 价格、交易日期、交易数量、可交付数量与交易数量的百分比的值并将其保存到 XLS 文件。下面是链接。

https://www.bseindia.com/stock-share-price/smartlink-network-systems-ltd/smartlink/532419/

PS:我对Python完全陌生。我知道有一些库可以使报废变得更容易,例如 BeautifulSoup、selenium、requests、lxml 等。对它们不太了解。

编辑1:我尝试了一些东西

from bs4 import BeautifulSoup
import requests
URL = 'https://www.bseindia.com/stock-share-price/smartlink-network-systems-ltd/smartlink/532419/'
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html5lib')
table = soup.find('div', attrs = {'id':'newheaddivgrey'})
print(table)

它的输出是None 。我期望网页中的所有表格并进一步过滤它们以获取所需的数据。

import requests
import lxml.html
URL = 'https://www.bseindia.com/stock-share-price/smartlink-network-systems-ltd/smartlink/532419/'
r = requests.get(URL)
root = lxml.html.fromstring(r.content)
title = root.xpath('//*[@id="SecuritywiseDeliveryPosition"]/table/tbody/tr/td/table/tbody/tr[1]/td')
print(title)

尝试了另一个代码。同样的问题。

编辑2:尝试过 Selenium 。但我没有得到表格内容。

from selenium import webdriver
driver = webdriver.Chrome(r"C:\Program Files\JetBrains\PyCharm Community Edition 2017.3.3\bin\chromedriver.exe")
driver.get('https://www.bseindia.com/stock-share-price/smartlink-network-systems-ltd/smartlink/532419/')
table=driver.find_elements_by_xpath('//*[@id="SecuritywiseDeliveryPosition"]/table/tbody/tr/td/table/tbody/tr[1]/td')
print(table)
driver.quit()

输出为[<selenium.webdriver.remote.webelement.WebElement (session="befdd4f01e6152942c9cfc7c563a6bf2", element="0.13124528538297953-1")>]

最佳答案

使用 Selenium 加载页面后,您可以使用 driver.page_source 获取 Javascript 修改的页面源。然后您可以在 BeautifulSoup 对象中传递此页面源代码。

driver = webdriver.Chrome()
driver.get('https://www.bseindia.com/stock-share-price/smartlink-network-systems-ltd/smartlink/532419/')
html = driver.page_source
driver.quit()

soup = BeautifulSoup(html, 'lxml')
table = soup.find('div', id='SecuritywiseDeliveryPosition')

此代码将为您提供 table 变量中的Securitywise Delivery Position 表。然后您可以解析这个 BeautifulSoup 对象以获得您想要的不同值。

soup 对象包含完整页面源,包括动态添加的元素。现在,您可以解析它以获取您提到的所有内容。

关于python - 从 BSE 网站提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49152367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com