python—如何在bs4的一行中获取相同类名的所有值

9avjhtql  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(274)

我从一个网站上抓取数据,它有相同类名的不同图像。我的代码是

images = soup.find_all('div' , {"class" : "slim-slide zoom"})
    listings = []
    for image in images:      
      try:
        variant_image = image.find('img' , {"class" : "zoom-image"})["src"].replace("\n",",")
        listings.append(image.get_text(strip=True))
      except AttributeError:
        variant_image = 'NA'
      print(variant_image)

我得到的结果是这样的

https://pa.namshicdn.com/product/A8/42187W/1-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/2-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/3-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/4-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/5-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/6-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/7-zoom-desktop.jpg
https://pa.namshicdn.com/product/A8/42187W/8-zoom-desktop.jpg

如何在一行中获得所有这些值。用逗号分隔。
当我在csv文件中写入时,会为每个链接创建一个新行,并重复所有其他列的值。
请告诉我怎样才能在一条线上赚钱
非常感谢。

kknvjkwl

kknvjkwl1#

使用join将获取数组并合并元素。简单地表示你想要一个逗号。

images = soup.find_all('div' , {"class" : "slim-slide zoom"})
    listings = []
    for image in images:      
      try:
        variant_image = image.find('img' , {"class" : "zoom-image"})["src"].replace("\n",",")
        listings.append(image.get_text(strip=True))
      except AttributeError:
        variant_image = 'NA'
      print(variant_image)

    combined = ','.join(listings)

相关问题