如何使用 BeautifulSoup 获取上一个元素
How to get Previous Element with BeautifulSoup
我一直坚持使用 BeautifulSoup html 解析器在数据库上写入。我只有一个价格,我想在未来的循环序列中使用该价格和最高收盘价。有人可以帮忙吗?我将永远感激不尽!我正在尝试存储一些从网站上抓取的数据;这是我的 python 代码:
soup = BeautifulSoup(html, 'html.parser')
site_json=json.loads(soup.text)
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
在下面的代码中,我试图获取以前的低值来使用。每行都引用了第二天,例如 1-1-2020、1-02-2020 - 01-03-2020 - 01-04-2020,我的数据就像
"pubdebt":CA,"publeaseroject":145,"highmetalprice":110200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":130200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":150200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":180200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":120200,
我的期望是进入每个循环:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
highmetalprice: 110200 (first highmetalopenprice value)
HIGHMETALCLOSE: .... (it may blank because we have just one price for beggining day)
第二个循环就像:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 110200 ( previous highmetalprice value)
HIGHMETALCLOSE: 130200 (current highmetalprice value)
第三个循环:
Pubdebt: Ca (current value)
Publeaseproject:145 (sticky value)
Highmetalopen: 130200 ( previous highmetalprice value)
HIGHMETALCLOSE: 150200 (current highmetalprice value)
第四个赞:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 150200 ( previous highmetalopenprice value )
HIGHMETALCLOSE: 180200 ( current highmetalopenprice value )
我用 find_previous 尝试了一些东西,但没有弄明白。我如何遍历所有 previous\next 价格?
谢谢。
尝试在列表外创建一个变量并将这些价格放入该变量
您应该将之前的价格保存在 loop
之外的变量中,并在当前价格的循环中使用它。在循环结束时,您应该将当前价格作为先前价格,以便在下一个循环中使用它。
类似的内容
previous_price = ''
for item in site_json:
pubdebt = item['pubdebt']
publease = item['publeaseroject']
highmetalprice = item['highmetalprice']
print('price current:', highmetalprice)
print('price previous:', previous_price)
# ... work with both prices ...
# assign current to previous for next loop
previous_price = highmetalprice
你的代码我看的一清二楚,但我的扩展代码就是这样。我的 api 查询有大量变量,如 CA、DB、AZ、FL、NY 等。
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200,
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200,
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200,
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200,
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200,
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200,
“pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200,
“pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200,
多变量有点难。我想用开盘价和收盘价存储所有值。我还尝试在循环中添加 +1,如:
汤 = BeautifulSoup(html, 'html.parser')
site_json=json.loads(soup.text)
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i**+1**]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
有什么建议吗?我想我很接近了。我只是不了解 BeautifulSoup 4。
我一直坚持使用 BeautifulSoup html 解析器在数据库上写入。我只有一个价格,我想在未来的循环序列中使用该价格和最高收盘价。有人可以帮忙吗?我将永远感激不尽!我正在尝试存储一些从网站上抓取的数据;这是我的 python 代码:
soup = BeautifulSoup(html, 'html.parser')
site_json=json.loads(soup.text)
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
在下面的代码中,我试图获取以前的低值来使用。每行都引用了第二天,例如 1-1-2020、1-02-2020 - 01-03-2020 - 01-04-2020,我的数据就像
"pubdebt":CA,"publeaseroject":145,"highmetalprice":110200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":130200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":150200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":180200,
"pubdebt":CA,"publeaseroject":145,"highmetalprice":120200,
我的期望是进入每个循环:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
highmetalprice: 110200 (first highmetalopenprice value)
HIGHMETALCLOSE: .... (it may blank because we have just one price for beggining day)
第二个循环就像:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 110200 ( previous highmetalprice value)
HIGHMETALCLOSE: 130200 (current highmetalprice value)
第三个循环:
Pubdebt: Ca (current value)
Publeaseproject:145 (sticky value)
Highmetalopen: 130200 ( previous highmetalprice value)
HIGHMETALCLOSE: 150200 (current highmetalprice value)
第四个赞:
Pubdebt: Ca (sticky value)
Publeaseproject:145 (sticky value)
Highmetalopen: 150200 ( previous highmetalopenprice value )
HIGHMETALCLOSE: 180200 ( current highmetalopenprice value )
我用 find_previous 尝试了一些东西,但没有弄明白。我如何遍历所有 previous\next 价格?
谢谢。
尝试在列表外创建一个变量并将这些价格放入该变量
您应该将之前的价格保存在 loop
之外的变量中,并在当前价格的循环中使用它。在循环结束时,您应该将当前价格作为先前价格,以便在下一个循环中使用它。
类似的内容
previous_price = ''
for item in site_json:
pubdebt = item['pubdebt']
publease = item['publeaseroject']
highmetalprice = item['highmetalprice']
print('price current:', highmetalprice)
print('price previous:', previous_price)
# ... work with both prices ...
# assign current to previous for next loop
previous_price = highmetalprice
你的代码我看的一清二楚,但我的扩展代码就是这样。我的 api 查询有大量变量,如 CA、DB、AZ、FL、NY 等。
“pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200, “pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200, “pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200, “pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200, “pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:110200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:130200, “pubdebt”:CA,“publeaseroject”:145,“highmetalprice”:150200, “pubdebt”:DB,“publeaseroject”:145,“highmetalprice”:180200, “pubdebt”:AZ,“publeaseroject”:145,“highmetalprice”:120200,
多变量有点难。我想用开盘价和收盘价存储所有值。我还尝试在循环中添加 +1,如:
汤 = BeautifulSoup(html, 'html.parser') site_json=json.loads(soup.text)
for i in range(len(site_json)):
pubdebt = site_json[i]['pubdebt']
publease = site_json[i]['publeaseroject']
highmetalprice = site_json[i**+1**]['highmetalprice']
try:
Job.objects.create(
pubdebt=pubdebt,
publeaseroject=publeaseroject,
highmetalprice=highmetalprice,
有什么建议吗?我想我很接近了。我只是不了解 BeautifulSoup 4。