关于请求和BS4的两个问题

2024-03-27 21:26:26 发布

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

import requests    
from bs4 import BeautifulSoup    
import time    
import sys

url = "https://www.doviz.com/"    
response = requests.get(url)    
html_icerigi = response.content    
soup = BeautifulSoup(html_icerigi,"html.parser")    
isimler = soup.find_all("span",{"class":"menu-row1"})    
degerler = soup.find_all("span",{"class":"menu-row2"})    
islem = input("Lütfen işleminizi giriniz...")    
time.sleep(1)

for isim,deger in zip(isimler,degerler):    
    isim = isim.text    
    deger = deger.text    
    isim = isim.strip()    
    deger = deger.strip()    
    isim = isim.replace("\n","")    
    deger = deger.replace("\n","")    
    print(isim,deger)

    while True:    
        if islem == "q" or islem == "Q":    
            print("Programdan çıkılıyor...")    
        time.sleep(1)    
        elif islem == "1":   
            print("1 Gr Altın = {} TLdir.".format(deger[0]))

我的问题是:

  1. 当我因为for循环中的while循环而运行此代码时,它会给出如下输出:

1 Gr Altın=2 TLdir。 1 Gr Altın=2 TLdir。你知道吗

不断地。我怎样才能避免呢?你知道吗

  1. deger[0]只返回每克黄金实际值的第一个数字。我想要所有的216370美元。你知道吗

顺便说一下,我是Python的初学者。你知道吗

致以最诚挚的问候。你知道吗


Tags: importurltimeresponsehtmlaltrequestsprint
1条回答
网友
1楼 · 发布于 2024-03-27 21:26:26

我认为没有必要使用while True:循环。放下它就能解决问题1

类似地,看起来您正在索引deger字符串。字符串的0索引是它的第一个字母。删除索引将返回整个值。你知道吗

编辑: 从您的评论来看,似乎您正在尝试创建一个列表,您可以对该列表进行索引,以获取该索引的特定值。为了做到这一点,您需要列出这些值。你知道吗

look_up = []
for isim,deger in zip(isimler,degerler):
    isim = isim.text
    deger = deger.text
    isim = isim.strip()
    deger = deger.strip()
    isim = isim.replace("\n","")
    deger = deger.replace("\n","")
    look_up.append(isim + "\t" + deger)
    print(isim,deger)

# dedent to remove from `for` loop
if islem == "q" or islem == "Q":
    print("Programdan çıkılıyor...")
    time.sleep(1)
else:
    print("1 Gr Altın = {} TLdir.".format(look_up[int(islem)]))

注意:这只允许一次查找。如果您想让它允许多个查找,您将需要建立一个sentinel循环,循环将一直持续到按下"q"。你知道吗

此外,使用字典look_up = {}并通过look_up[isim] = deger填充它可能会更好。这样,您就可以通过isim值来查找信息。i、 eDOLAREURO

我希望这是足够的信息,让你到你想去的地方。我相信您可以使用这里提供的信息来解决您的特定用例。你知道吗

相关问题 更多 >