如何删除除数字以外的所有内容(韩国公司的网络爬网市值)

2024-06-11 04:52:37 发布

您现在位置:Python中文网/ 问答频道 /正文

请帮助,这可怜的,挣扎的,哲学和;经济专业的人

我正试图从韩国网站“finance.naver.com”获取三星电子的市值

(不需要是三星,我只需要为我的定量投资目的爬升市值)

该网站是 https://finance.naver.com/item/main.nhn?code=005930

这是网页的图像,目标编号在红色框中 enter image description here

这是我的密码

from bs4 import BeautifulSoup
import requests
mkc_url = 'https://finance.naver.com/item/main.nhn?code=005930'
mkc_result = requests.get(mkc_url)
mkc_obj = BeautifulSoup(mkc_result.content, "html.parser")

我发现目标号码在'div'标签'first'类中

mkc = mkc_obj.find("div",{"class": "first"})

在“div”标签中,我发现号码在“em”标签中,“u market\u sum”id

em_id = mkc.find("em", {"id":"_market_sum"})

最后我得到了这样的结果

enter image description here

"조' 是韩国货币的度量单位,所以我想删除除数字以外的所有内容,但我不知道如何删除

我所做的是将结果放入数据框,并尝试使用“.str.strip”删除除数字以外的所有内容

df_mkc = pd.DataFrame(em_id)
df_mkc[0] = df_mkc[0].str.strip('\n')
df_mkc[0] = df_mkc[0].str.strip('\t')
df_mkc[0] = df_mkc[0].str.strip()
df_mkc = df_mkc.replace({'\$': '', ',': ''}, regex=True)

它变得越来越可怕

enter image description here

我在这一点上敲了一下

请帮忙

谢谢你的好意、惠斯顿和慷慨


Tags: httpsdivcomiddf网站标签item
2条回答

定义了em_id之后,通过执行

em_txt = em_id.get_text()

然后,您可以使用(多亏了this answer)消除空白

clean_em = "".join(line.strip() for line in em_txt.split("\n"))

最后,如果货币总是相同的,您可以通过执行以下操作创建一个包含两个数值的列表

mcap_list = clean_em.split('조')

您可能希望通过执行以下操作来除去4,299中的逗号

mcap_list[1] = mcap_list[1].replace(",","")

并使用

for i in range(len(mcap_list)):
    mcap_list[i] = int(mcap_list[i])

现在mcap_list等于[290,4299]

另一种解决方案是使用^{}^{},考虑到以下虚拟数据帧:

df = pd.DataFrame({'Extract' : ['Total revenue for this year is $10,000, for last year it was $8000',
                                'and profit in USD is $2000.00','it is 20.00%',
                                'This is in Korean currency 500조']})

df['Numbers'] = df['Extract'].str.findall(r'(\d+[.,]?\d*)')

print(df['Numbers')

0    [10,000, 8000]
1         [2000.00]
2           [20.00]
3             [500]

相关问题 更多 >