我正在尝试用多个网页抓取一个网站。我想构建一个函数来返回一组页面中的页面数。
以下是一个示例起始页。
该首页中有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 >
非常感谢任何帮助/建议。
答案 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