首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用美丽的汤做简单的分页循环

如何用美丽的汤做简单的分页循环
EN

Stack Overflow用户
提问于 2020-06-17 11:53:28
回答 1查看 205关注 0票数 0

我需要你的帮助,就如何做分页和循环在5个不同的网页,但使用相同的网址(http://www.chartsinfrance.net/charts/albums.php,p2),只有最后一个字的网址谁改变了页面的数目。

我可以刮第一页的数据,但是我不明白如何获得其他URL和在一个循环中刮掉的所有数据,并在脚本的一次执行中拥有类似于250首歌曲的内容!

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2020-06-17 12:21:43

您可以将代码放到while ...循环中,在那里加载汤,获取有关歌曲的信息,然后选择下一页的链接。

如果下一页的链接存在,请加载新的汤并继续循环。如果没有,就中断循环。

例如:

代码语言:javascript
复制
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

指纹:

代码语言:javascript
复制
--------
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62428379

复制
相关文章

相似问题

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