微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提取html的特定部分

如何解决提取html的特定部分

我正在使用 html 请求和漂亮的汤(新手)开发网络爬虫。对于 1 个网页 (https://www.selfridges.com/GB/en/cat/beauty/make-up/?pn=1),我正在尝试刮取一部分,我将复制该部分以用于其他产品。 html 看起来像:

<div class="plp-listing-load-status c-list-header__counter initialized" data-page-number="1" data-total-pages-count="57" data-products-count="60" data-total-products-count="3361" data-status-format="{available}/{total} results">60/3361 results</div>

我希望从 data-total-pages-count="57" 中刮取“57”。我试过使用:

soup = BeautifulSoup(page.content,"html.parser")
nopagesstr = soup.find(class_="plp-listing-load-status c-list-header__counter initialized").get('data-total-pages-count')

nopagesstr = r.html.find('[data-total-pages-count]',first=True)

但两者都返回 None。我不确定如何具体选择 57。任何帮助都会受到赞赏

解决方法

要获得总页数,您可以使用以下示例:

import requests
from bs4 import BeautifulSoup


url = "https://www.selfridges.com/GB/en/cat/beauty/make-up/?pn=1"

headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"
}
soup = BeautifulSoup(requests.get(url,headers=headers).text,"html.parser")
print(soup.select_one("[data-total-pages-count]")["data-total-pages-count"])

打印:

56

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。