Как сделать простую нумерацию страниц l oop с beautifulsoup - PullRequest
0 голосов
/ 17 июня 2020

Мне нужна ваша помощь, чтобы получить объяснение, как выполнить разбиение на страницы и l oop на 5 разных страницах, но с тем же URL-адресом (http://www.chartsinfrance.net/charts/albums.php, p2 ) только с последним словом URL-адреса которые меняют номер страницы.

Я могу удалить данные первой страницы, но я не понимаю, как получить другой URL-адрес и удалить все данные в одном l oop и иметь как 250 песня в одном исполнении скрипта!

import requests
from bs4 import BeautifulSoup


req = requests.get('http://www.chartsinfrance.net/charts/albums.php')
soup = BeautifulSoup(req.text, "html.parser")
charts = soup.select('.c1_td1')

Auteurs=[]
Titre=[]
Rang=[]
Evolution=[]

for chart in charts:
    Rang = chart.select_one('.c1_td2').get_text()
    Auteurs = chart.select_one('.c1_td5 a').get_text()
    Evolution = chart.select_one('.c1_td3').get_text()
    Titre = chart.select_one('.c1_td5 .noir11').get_text()
    print('--------')
    print(Auteurs)
    print(Titre)
    print(Rang)
    print(Evolution)

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете ввести свой код в while ... l oop, где вы загружаете суп, получаете информацию о песнях и затем выбираете ссылку на следующую страницу.

Если ссылка на следующую страницу существует, загрузите новую суп и продолжить л oop. Если нет, разбейте l oop.

Например:

import requests
from bs4 import BeautifulSoup


url = 'http://www.chartsinfrance.net/charts/albums.php'

while True:
    soup = BeautifulSoup(requests.get(url).content, 'html.parser')

    charts = soup.select('.c1_td1')

    Auteurs=[]
    Titre=[]
    Rang=[]
    Evolution=[]

    for chart in charts:
        Rang = chart.select_one('.c1_td2').get_text()
        Auteurs = chart.select_one('.c1_td5 a').get_text()
        Evolution = chart.select_one('.c1_td3').get_text()
        Titre = chart.select_one('.c1_td5 .noir11').get_text()
        print('--------')
        print(Auteurs)
        print(Titre)
        print(Rang)
        print(Evolution)

    next_link = soup.select_one('a:contains("→ Suite du classement")')
    if next_link:
        url = 'http://www.chartsinfrance.net' + next_link['href']
    else:
        break

Печать:

--------
Lady Gaga
Chromatica
1
Entrée
--------
Johnny Hallyday
Johnny 69
2
Entrée
--------

... 

--------
Bof
Pulp Fiction
248
-115
--------
Trois Cafés Gourmands
Un air de Live
249
-30
--------
Various Artists
Salut Les Copains 60 Ans
250
Entrée
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...