#python #web-scraping
Вопрос:
Это мой код до сих пор: В основном я хотел бы очистить топ-10 художников и создать фрейм данных, в котором указаны 3 столбца: их имя, ссылка и html-код ссылки каждого художника. Как я могу прогрессировать отсюда? Кроме того, эта часть тоже не работает, все, что печатается, — это «SoundCloud». Любые советы приветствуются.
from urllib.request import urlopen
import pandas as pd
import requests
import bs4
import re
url='https://soundcloud.com/popular/searches'
source=urlopen(url).read().decode('utf-8')
bsource=bs4.BeautifulSoup(source)
tag=bsource.find('a', href=True)
print(tag.string)
Ответ №1:
Попробуй:
import requets
import pandas as pd
from bs4 import BeautifulSoup
url = "https://soundcloud.com/popular/searches"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
data = []
for a in soup.select("ol a")[:10]:
data.append(
{
"name": a.get_text(strip=True),
"link": "https://soundcloud.com" a["href"],
"html": str(a),
}
)
df = pd.DataFrame(data)
print(df)
С принтами:
name link html
0 nba youngboy https://soundcloud.com/search?q=nba youngboy <a href="/search?q=nba youngboy">nba youngbo...
1 juice wrld https://soundcloud.com/search?q=juice wrld <a href="/search?q=juice wrld">juice wrld</a>
2 polo g https://soundcloud.com/search?q=polo g <a href="/search?q=polo g">polo g</a>
3 lil baby https://soundcloud.com/search?q=lil baby <a href="/search?q=lil baby">lil baby</a>
4 lil durk https://soundcloud.com/search?q=lil durk <a href="/search?q=lil durk">lil durk</a>
5 xxxtentacion https://soundcloud.com/search?q=xxxtentacion <a href="/search?q=xxxtentacion">xxxtentacion</a>
6 j cole https://soundcloud.com/search?q=j cole <a href="/search?q=j cole">j cole</a>
7 rod wave https://soundcloud.com/search?q=rod wave <a href="/search?q=rod wave">rod wave</a>
8 moneybagg yo https://soundcloud.com/search?q=moneybagg yo <a href="/search?q=moneybagg yo">moneybagg y...
9 king von https://soundcloud.com/search?q=king von <a href="/search?q=king von">king von</a>
Комментарии:
1. Большое спасибо!
2. Могу я просто спросить, что делает «ол а»? Я устал искать это в документации, но не смог найти ничего о ol
3. @JoshBob
"ol a"
-это селектор CSS. это означает «дайте мне все<a>
теги, которые находятся внутри<ol>
тегов. Когда вы проверите HTML-источник страницы, вы увидите, что популярные поисковые запросы отформатированы таким образом.4. О, так что эти части зависят только от того, какую часть html мы ищем, я вижу. Большое спасибо! @Андрей Кесели