Python Beautiful Soup Parse Первый раздел в каждом разделе - PullRequest
0 голосов
/ 19 мая 2018

Учитывая следующий код:

# import the module
import bs4 as bs
import urllib.request
import re

masterURL = 'http://www.metrolyrics.com/top100.html'
sauce = urllib.request.urlopen(masterURL).read()
soup = bs.BeautifulSoup(sauce,'lxml')




for div in soup.findAll('ul', {'class': 'song-list'}):
    for span in div:
        for link in span:
            for a in link:
                print(a)

Я могу проанализировать несколько делений, и я получаю результат следующим образом:

enter image description here

Мой вопрос, вместо того, чтобы получить полное содержимое div, как я могу вернуть только выделенную часть, URL Href?

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Попробуй это.Вам нужно указать право class для извлечения URL-адресов, связанных с ним.

from bs4 import BeautifulSoup
import urllib.request

masterURL = 'http://www.metrolyrics.com/top100.html'
sauce = urllib.request.urlopen(masterURL).read()
soup = BeautifulSoup(sauce,'lxml')

for div in soup.find_all(class_='subtitle'):
    print(div.get("href"))

Вывод:

http://www.metrolyrics.com/charles-goose-lyrics.html
http://www.metrolyrics.com/param-singh-lyrics.html
http://www.metrolyrics.com/westlife-lyrics.html
http://www.metrolyrics.com/luis-fonsi-lyrics.html
http://www.metrolyrics.com/grease-lyrics.html
http://www.metrolyrics.com/shanti-dope-lyrics.html

и т. Д. ---

0 голосов
/ 19 мая 2018
if 'href' in a.attrs:
     a.attrs['href']

это даст вам то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...