需要找到下一页链接的Python代码

0 投票
1 回答
1304 浏览
提问于 2025-04-18 02:34

我想知道如何找到下一个页面的链接,下面的脚本就是用来实现这个目的的。

有一个主要的div,类名是"abc",它包含了下一个页面的链接,链接是

  www.abc.com #base url
  www.abc.com/options/latest/121?n=0 

这个页面能够收集选项的URL,并从中获取详细信息。这个页面里包含了下一个页面的链接,链接是

<p>  <a href="/options/latest/121?n=20">suivant »</a> </p>

我能获取到这个链接,也能从中得到详细信息,但就是无法收集到下一个页面的链接,链接是

<p>  <a href="/options/latest/121?n=20">suivant »</a> </p>

我想收集

 <p>  <a href="/options/latest/121?n=40">suivant »</a> </p>

我想一直获取到最后一页。

1 个回答

1

要从网页中获取下一个网址,你可以使用BeautifulSoup这个工具:

import re

def get_next_url(soup):
    for div in soup.find_all('div', 'abc'):
        a = div.find('a', href=re.compile('^/options/latest/'),
                     text=re.compile('suivant'))
        if a is not None:
           return a['href']

要切换到下一页:

from urllib2 import urlopen
from bs4 import BeautifulSoup # $ pip install beautifulsoup4

link = '/first/page'
while link:
    print(link)
    page = urlopen('http://example.com' + link)
    soup = BeautifulSoup(page, from_encoding=page.info().getparam('charset'))
    link = get_next_url(soup)

撰写回答