我正在尝试学习使用美丽的汤,但是我在努力完成这项任务。我想从此页面中提取所有曲目名称,即“ 0001A”,“给猫皮剥皮的3种方式”等,但不知道如何执行此操作。我没有在div中看到此数据,这是我正在使用的教程要求我执行的操作。有人可以帮忙吗?

更新:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.residentadvisor.net/dj/greggow/tracks')
html = r.content

soup = BeautifulSoup(html, 'lxml')
div = soup.find_all('div', class_= "title")
print(div)

最佳答案

因此,我尝试了这一点,而又没有弄乱BS的方法,我只是采取了简单的方法,将每个div转换为字符串,并进行了适当的拼接:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.residentadvisor.net/dj/greggow/tracks')
html = r.content

soup = BeautifulSoup(html, 'html.parser')
div = soup.find_all('div', class_= "title")

for each in div:

    #3 options presented themselves, either with a href or not in title

    if each.find("a"):
        #Either a link back to the track
        if "track.aspx" in each.find("a")["href"]:
            each = each.find("a").get_text()

        #or to some other weird source
        else:
            each = str(each)
            each = each[each.find(">") + 1 : each.find("<br/>") ]

    else:
        each = str(each)
        each = each[each.find(">") + 1 : each.find("<br/>") ]
    print(each)


这是一种不好的形式,尽管看到网站上的某些更改可能会破坏代码,所以我不建议将其用作将来项目的解决方案。但是我得回去上班了

07-28 08:04