繁体   English   中英

从 BSE 网站提取数据

[英]Extract data from BSE website

如何使用 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:尝试硒。 但我没有得到表格内容。

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对象包含完整的页面源,包括动态添加的元素。 现在,您可以解析它以获取您提到的所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM