首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取美汤分页的最大结果数?

如何提取美汤分页的最大结果数?
EN

Stack Overflow用户
提问于 2022-01-21 20:16:57
回答 2查看 121关注 0票数 0

我尝试选择分页部分,并希望提取最大结果2143的数量。

代码语言:javascript
复制
numbers = contents.find(name="div", attrs={"class": "pagination"})
print(numbers .attrs)
print(numbers )
print(numbers .get_text(' ', strip=True))

这段代码给了我这样的结果:

代码语言:javascript
复制
    {'class': ['pagination']}
    <div class="pagination"><span>Showing 1-30 of 2143</span><ul><li><div class="prev"></div></li><li><span class="disabled">1</span></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":2}' data-page="2" data-remote="true" href="/san-francisco-ca/dentists?page=2">2</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":3}' data-page="3" data-remote="true" href="/san-francisco-ca/dentists?page=3">3</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":4}' data-page="4" data-remote="true" href="/san-francisco-ca/dentists?page=4">4</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":5}' data-page="5" data-remote="true" href="/san-francisco-ca/dentists?page=5">5</a></li><li><a class="next ajax-page" data-analytics='{"click_id":132}' data-page="2" data-remote="true" href="/san-francisco-ca/dentists?page=2">Next</a></li></ul></div>
    Showing 1-30 of 2143 1 2 3 4 5 Next

如何仅提取2143

Showing 1-30 of 2143 1 2 3 4 5 Next

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-21 20:40:31

选择您的标记更具体,一个选项列表使用css selectors链接条件-选择第一个直接<span> of <div>与类pagination,用空格拆分文本并获取列表的最后一个元素:

代码语言:javascript
复制
soup.select_one('div.pagination > span').text.split(' ')[-1]

示例

代码语言:javascript
复制
html = '''<div class="pagination"><span>Showing 1-30 of 2143</span><ul><li><div class="prev"></div></li><li><span class="disabled">1</span></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":2}' data-page="2" data-remote="true" href="/san-francisco-ca/dentists?page=2">2</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":3}' data-page="3" data-remote="true" href="/san-francisco-ca/dentists?page=3">3</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":4}' data-page="4" data-remote="true" href="/san-francisco-ca/dentists?page=4">4</a></li><li><a data-analytics='{"click_id":132,"module":1,"listing_page":5}' data-page="5" data-remote="true" href="/san-francisco-ca/dentists?page=5">5</a></li><li><a class="next ajax-page" data-analytics='{"click_id":132}' data-page="2" data-remote="true" href="/san-francisco-ca/dentists?page=2">Next</a></li></ul></div>'''

soup=BeautifulSoup(html,'lxml')

soup.select_one('div.pagination > span').text.split(' ')[-1]

输出

代码语言:javascript
复制
2143
票数 1
EN

Stack Overflow用户

发布于 2022-01-21 20:21:54

numbers.get_text不同,find "span“获取文本和rsplit 1,并接受第二个元素:

代码语言:javascript
复制
out = numbers.find('span').text.rsplit(' ', 1)[1]

输出:

代码语言:javascript
复制
'2143'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70807202

复制
相关文章

相似问题

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