获取最后一页编号 - 网页抓取

时间:2016-04-14 14:01:00

标签: python web-scraping beautifulsoup

我正在尝试用多个网页抓取一个网站。我想构建一个函数来返回一组页面中的页面数。

以下是一个示例起始页。

该首页中有29个子页面,理想情况下该函数将返回29.

通过子页面我的意思是29页的第1页,29页的2等等。

这是HTML代码段,其中包含上面发布的链接中的最后一页信息。

<div id="paging-wrapper-btm" class="paging-wrapper">
        <ol class="page-nos"><li ><span class="selected">1</span></li><li ><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=1&pgesize=36&sort=-1'>2</a></li><li ><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=2&pgesize=36&sort=-1'>3</a></li><li ><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=3&pgesize=36&sort=-1'>4</a></li><li ><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=4&pgesize=36&sort=-1'>5</a></li><li #LIVALUES#>...</li><li ><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=28&pgesize=36&sort=-1'>29</a></li><li class="page-skip"><a href='http://www.asos.de/Herren-Jeans/podlh/?cid=4208&pge=1&pgesize=36&sort=-1'>Weiter »</a></li></ol>    

我有以下代码可以找到所有ol标签,但无法弄清楚如何访问每个标签中包含的内容。&#39; a&#39;

a = soup.find_all('ol')
b = [x['a'] for x in a] <-- this part returns an error.
< further processing >

非常感谢任何帮助/建议。

3 个答案:

答案 0 :(得分:2)

啊..我找到了一个简单的解决方案。

for item in soup.select("ol a"):
    x = item.text
    print x

然后我可以排序并选择最大的数字。

答案 1 :(得分:0)

试试这个:

Background

答案 2 :(得分:0)

以下内容将提取最后一页编号:

from bs4 import BeautifulSoup 
import requests


html = requests.get("http://www.asos.de/Herren-Jeans/podlh/?cid=4208&via=top&r=2#parentID=-1&pge=1&pgeSize=36&sort=-1")
soup = BeautifulSoup(html.text)

ol = soup.find('ol', class_='page-nos')
pages = [li.text for li in ol.find_all('li')]
last_page = pages[-2]

print last_page

您的网站将显示:

30