使用美丽汤提取

拉克什·科罗拉(RakeshKirola)

我想从网站上获取股票价格:http ://www.bseindia.com/例如,股票价格显示为“ S&P BSE:25,489.57”。我想获取其数字部分为“ 25489.57”

这是我到目前为止编写的代码,它将获取显示该金额而不是金额的整个div。

下面是代码:

from bs4 import BeautifulSoup
from urllib.request import urlopen



page = "http://www.bseindia.com"

html_page = urlopen(page)

html_text = html_page.read()
soup = BeautifulSoup(html_text,"html.parser")
divtag = soup.find_all("div",{"class":"sensexquotearea"})
for oye in divtag:
    tdidTags = oye.find_all("div", {"class": "sensexvalue2"})

    for tag in tdidTags:
        tdTags = tag.find_all("div",{"class":"newsensexvaluearea"})
        for newtag in tdTags:
            tdnewtags = newtag.find_all("div",{"class":"sensextext"})
            for rakesh in tdnewtags:
                tdtdsp1 = rakesh.find_all("div",{"id":"tdsp"})
                for texts in tdtdsp1:
                    print(texts)
基廷厄

我浏览了该页面加载信息时的情况,并且能够模拟javascript在python中的功能。

我发现它正在引用一个称为“请在此处检查”的页面IndexMovers.aspx?ln=en 在此处输入图片说明

看起来此页面是用逗号分隔的事物列表。首先是名称,其次是价格,然后是您不关心的其他几件事。

为了在python中进行模拟,我们请求页面,将其用逗号分隔,然后通读列表中的第6个值,并将该值和该值之后的值添加到一个名为stockInformation的新列表中。

现在我们可以循环浏览股票信息,并使用item[0]获得价格item[1]

import requests

newUrl = "http://www.bseindia.com/Msource/IndexMovers.aspx?ln=en"
response = requests.get(newUrl).text
commaItems = response.split(",")


#create list of stocks, each one containing information
#index 0 is the name, index 1 is the price
#the last item is not included because for some reason it has no price info on indexMovers page
stockInformation = []
for i, item in enumerate(commaItems[:-1]):
    if i % 6 == 0:
        newList = [item, commaItems[i+1]]
        stockInformation.append(newList)


#print each item and its price from your list
for item in stockInformation:
    print(item[0], "has a price of", item[1])

打印输出:

S&P BSE SENSEX has a price of 25489.57
SENSEX#S&P BSE 100 has a price of 7944.50
BSE-100#S&P BSE 200 has a price of 3315.87
BSE-200#S&P BSE MidCap has a price of 11156.07
MIDCAP#S&P BSE SmallCap has a price of 11113.30
SMLCAP#S&P BSE 500 has a price of 10399.54
BSE-500#S&P BSE GREENEX has a price of 2234.30
GREENX#S&P BSE CARBONEX has a price of 1283.85
CARBON#S&P BSE India Infrastructure Index has a price of 152.35
INFRA#S&P BSE CPSE has a price of 1190.25
CPSE#S&P BSE IPO has a price of 3038.32
#and many more... (total of 40 items)

显然等同于页面上显示的值 在此处输入图片说明

因此,有了它,您可以准确模拟该页面上的javascript正在执行的操作以加载信息。实际上,您现在拥有的信息比页面上显示的信息还要多,并且请求将变得更快,因为我们仅下载数据,而不是所有多余的html。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用美丽汤提取

来自分类Dev

美丽的汤只需提取表头

来自分类Dev

如何使用美丽的汤4从span标签提取文本?

来自分类Dev

如何使用美丽汤从Wikipedia中提取表格

来自分类Dev

美丽的汤-使用find_all从多个网页提取文本

来自分类Dev

尝试使用美丽的汤从 html 页面中提取价值

来自分类Dev

使用美丽的汤蟒刮

来自分类Dev

使用美丽的汤蟒刮

来自分类Dev

使用美丽汤获取href

来自分类Dev

从美丽的汤python中提取链接标题

来自分类Dev

如何从美丽的汤类中提取价值

来自分类Dev

从美丽汤中的图表中提取文本

来自分类Dev

美丽的汤:从深度嵌套的<div>中提取

来自分类Dev

用美丽的汤从字典中提取

来自分类Dev

提取物价格-美丽的汤

来自分类Dev

提取美丽汤中的属性值

来自分类Dev

如何从美丽的汤类中提取价值

来自分类Dev

用美丽的汤提取很少的值

来自分类Dev

用美丽的汤提取特定的链接

来自分类Dev

从表中提取数据的美丽汤

来自分类Dev

使用美丽的汤提取选择性文本并将结果写入 CSV

来自分类Dev

使用美丽的汤访问附加项

来自分类Dev

使用美丽汤访问JavaScript文本

来自分类Dev

使用美丽汤从Kickstarter抓取项目网址

来自分类Dev

在python中使用美丽的汤刮桌子

来自分类Dev

美丽的汤标签有冒号。需要提取温度值。

来自分类Dev

美丽的汤-在解析树的提取部分之前插入

来自分类Dev

用美丽的汤提取表中的所有链接

来自分类Dev

美丽的汤提取父母/兄弟姐妹tr表类