首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python请求每件事的两倍

Python请求每件事的两倍
EN

Stack Overflow用户
提问于 2021-09-10 09:24:11
回答 3查看 92关注 0票数 0

因此,我试图制作一个程序,以获得Spotify个人资料图片。我可以得到图片的URL,但问题是每个URL中有两个。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup


list = ["https://open.spotify.com/user/0n7zzdkxmt0ldpo1kqugwca67",
        "https://open.spotify.com/user/1l23d3k5yq2v9ey191zp8uqxr",
]

for i in list:
    response = requests.get(i)

    html_content = response.content

    soup = BeautifulSoup(html_content, "html.parser")
    for i in soup.find_all("div",{"class":"bg lazy-image"}):
        print(i.get("data-src"))

这就是结果:

代码语言:javascript
复制
https://i.scdn.co/image/ab6775700000ee85202880a205b627a7e6f25659
https://i.scdn.co/image/ab6775700000ee85202880a205b627a7e6f25659
https://i.scdn.co/image/ab6775700000ee85da40dde3363ed185d5e48a0a
https://i.scdn.co/image/ab6775700000ee85da40dde3363ed185d5e48a0a

Process finished with exit code 0

我的问题是,如果它们是相同的,我怎么能只打印其中的一个呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-09-10 09:32:14

在这种情况下,您只需将可迭代转换为

代码语言:javascript
复制
    for i in set(soup.find_all("div",{"class":"bg lazy-image"})):
       print(i.get("data-src"))

通过这样做,可迭代中的所有重复项都会被消除

我强烈建议阅读Python的数据结构

https://docs.python.org/3/tutorial/datastructures.html

票数 2
EN

Stack Overflow用户

发布于 2021-09-10 09:32:17

我会将它们转换成一组,以删除副本:

代码语言:javascript
复制
divs = soup.find_all("div",{"class":"bg lazy-image"})
urls = set(d.get('data-src') for d in divs) 
票数 2
EN

Stack Overflow用户

发布于 2021-09-10 09:35:03

一个简单的解决方案就是检查URL是否等于最后一个URL。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup


list = ["https://open.spotify.com/user/0n7zzdkxmt0ldpo1kqugwca67",
        "https://open.spotify.com/user/1l23d3k5yq2v9ey191zp8uqxr",
]

for i in list:
    response = requests.get(i)
    html_content = response.content

    url = None
    soup = BeautifulSoup(html_content, "html.parser")
    for i in soup.find_all("div",{"class":"bg lazy-image"}):
        if i.get("data-src") != url:
            url = i.get("data-src")
            print(url)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69130081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档