【问题标题】:Save each iteration in a new line将每次迭代保存在新行中
【发布时间】:2021-08-01 12:45:42
【问题描述】:

朋友们!我有以下代码:

   import requests
   from bs4 import BeautifulSoup

  # 1 - Importar a página (html):

  início_url = 'https://www.conjugacao.com.br'
  final_url = ["/verbo-ir","/verbo-ser"]
  
  # 2 - Requisição:

  nome_verbos = []

  for final_url in final_url:

  url = início_url + final_url
  página = requests.get(url)
  soup = BeautifulSoup(página.text, 'lxml')

  for verbos_nomes in soup.find_all('h1', class_='nmt'):
      nome_verbos.append(verbos_nomes.text)

  for items in soup.find_all('span', class_='f irregular'):
      nome_verbos.append(items.text)

  for items in soup.find_all('span', class_='f'):
      nome_verbos.append(items.text)
   
  # 3 Salvar resultados:

  with open('verbos.txt', 'w') as f:
      for line in nome_verbos:
          f.write(line.upper())
          f.write(',')

这段代码的输出如下:

   output:  VERBO IR,VOU,VAIS,VAI,VAMOS,IDES,VÃO, VERBO SER,SOU,ÉS,É,SOMOS,SOIS,SÃO  

我唯一需要做的就是找出如何像这样保存这个结果:

   expected_output: 

   VERBO IR -> VOU, VAIS,VAI,VAMOS,IDES,VÃO
   VERBO SER -> SOU,ÉS,É,SOMOS,SOIS,SÃO

有什么想法吗?

【问题讨论】:

    标签: loops for-loop beautifulsoup save iteration


    【解决方案1】:
    import requests
    from bs4 import BeautifulSoup
    
    patterns = [
        'ir',
        'ser'
    ]
    
    
    def main(url):
        with requests.Session() as req:
            for pat in patterns:
                r = req.get(url.format(pat))
                soup = BeautifulSoup(r.text, 'lxml')
                name = soup.select_one('.nmt').text
                goal = [x.text for x in soup.select('.f, .irregular')]
                print(f"{name} --> {', '.join(goal)}")
    
    
    main('https://www.conjugacao.com.br/verbo-{}')
    

    输出:

    
    Verbo Ir --> vou, vais, vai, vamos, ides, vão, fui, foste, foi, fomos, fostes, foram, fora, foras, fora, fôramos, fôreis, foram, fosse, fosses, fosse, fôssemos, fôsseis, fossem, vá, vás, vá, vamos, vades, vão, for, fores, for, formos, fordes, forem, vai, vá, vamos, ide, vão, vás, vá, vamos, vades, vão
    Verbo Ser --> sou, és, é, somos, sois, são, era, eras, era, éramos, éreis, eram, fui, foste, foi, fomos, fostes, foram, fora, foras, fora, fôramos, fôreis, foram, fosse, fosses, fosse, fôssemos, fôsseis, fossem, seja, sejas, seja, sejamos, sejais, sejam, for, fores, for, formos, fordes, forem, sê, seja, sejamos, sede, sejam, sejas, seja, sejamos, sejais, sejam
    

    【讨论】:

    • 非常感谢,艾哈迈德!!!我添加了另一个目标变量,因为还有另一个标记 ('f'),它也是动词的一部分。再次感谢!!!
    • @CygnusX-1 你不需要单独指定类名.f.f.irregular 会找到这两个类
    • @Ahmed,.f 和 .f.irregular 是两个不同的标签:.f 用于动词的规则部分,而 .f.irregular 用于动词的不规则部分。当我运行你的脚本时,它只发现了不规则的部分,但是当我用那个 .f 标签(目标 + 目标 1)添加另一个变量时,动词的所有部分都被刮掉了!再次感谢您,非常感谢您帮助我!
    • @CygnusX-1 我的错,是错字。试试'.f, .irregular',也不要用名字来判断。这是classes 不是tags
    • 确实,@Ahmed,这些是类,而不是标签。当然,你的回答对我帮助很大!!我非常感谢你!!!再见,朋友!!来自巴西的拥抱!
    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多