BeautifulSoup,如何阻止我的Web链接列表相互覆盖?

问题描述

下面的代码只给我列表中的最后一个单词

library(tidyverse)
library(palmerpenguins)
#Code for plot
ggplot(penguins,aes(x=bill_length_mm,y=flipper_length_mm,color=species,fill = species)) +
  geom_point() + 
  geom_smooth(method=lm,alpha=0.2)+
  scale_fill_manual(values=c("blue","gold","brown"))+
  scale_color_manual(values=c("blue","brown"))

请帮助我尝试一切。我是BeautifulSoup的初学者,对不起,我的代码格式糟糕

解决方法

如前所述,我相信您已经实现了目标。

在python中,作用域由缩进确定。这定义了局部变量的有效范围。由于您在示例中没有连续进行此操作,因此在发送第一个请求时,迭代已经完成。循环变量已经被重新分配,并且包含最后一个迭代步骤的结果。

# open files for reading and writing
with open('WORD.csv') as src,open('test.txt','w') as dst:
    # read row by row
    for row in csv.reader(src):
        # get words separated by comma
        for word in row:
            # open connection and create parser with read data
            url = f'https://www.lexico.pt/{word}'
            resp = urlopen(url)
            html = soup(resp.read(),'html.parser')
            # find card/content
            card = html.find('div',{'class':'card-pl-significado'})
            word = card.h2.text
            desc = card.p.text
            # write formatted result to file
            dst.write(f'{word},{desc}\n')

玩得开心