gpt4 book ai didi

python - 从 Investing 中查找并提取 curr_id 号码

转载 作者:行者123 更新时间:2023-11-28 16:24:23 25 4
gpt4 key购买 nike

我需要知道 curr_id 以使用 python 提交给 investing.com 并提取多种货币/商品的历史数据。为此,我需要 curr_id 号码。如下面的示例所示。我能够提取所有脚本。但是后来我不知道如何找到包含 curr_id 的正确脚本索引并提取数字“2103”。示例:我需要找到 2103 的代码。

import requests
from bs4 import BeautifulSoup

url = 'http://www.investing.com/currencies/usd-brl-historical-data'
r = requests.get(url)

#URL
url='http://www.investing.com/currencies/usd-brl-historical-data'
#OPEN URL
r = requests.get(url)
#DETERMINE FORMAT
soup=BeautifulSoup(r.content,'html.parser')

#FIND TABLE WITH VALUES IN soup
curr_data = soup.find_all('script', {'type':'text/javascript'})'

更新我是这样做的: g_data_string=str(g_data)

if 'curr_id' in g_data_string: 
print('success')

start = g_data_string.find('curr_id') + 9
end = g_data_string.find('curr_id')+13

print(g_data_string[start:end])

但我确信有更好的方法。

最佳答案

您可以使用 regular expression pattern作为 text 参数来查找特定的 script 元素。然后,使用相同的正则表达式在 script 的文本中搜索:

import re

import requests
from bs4 import BeautifulSoup

url = 'http://www.investing.com/currencies/usd-brl-historical-data'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')

pattern = re.compile(r"curr_id: (\d+)")
script = soup.find('script', text=pattern)

match = pattern.search(script.text)
if match:
print(match.group(1))

打印 2103

这里的 (\d+) 是一个捕获组,它将匹配一个或多个数字。

关于python - 从 Investing 中查找并提取 curr_id 号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37775998/

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