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

使用python抓取网页

如何解决使用python抓取网页

我有以下网页

</div><a href="https://www.emag.ro/laptop-lenovo-thinkbook-15-iil-cu-procesor-intel-core-i7-1065g7-pana-la-3-90-ghz-15-6-full-hd-16gb-512gb-ssd-intel-iris-plus-graphics-free-dos-mineral-grey-20sm003jrm/pd/DKBK1TMBM/#reviews-section" rel="nofollow" class="star-rating-container js-product-url" data-zone="reviews"><div class="star-rating star-rating-read rated-4.02  star-rating-sm  ">
        <div class="star-rating-inner " style="width: 100%"></div>
    </div><div class="star-rating-text ">

我想从这个产品中提取评分。 对于此产品,此处定义了评级。

<div class="star-rating star-rating-read rated-4.02  star-rating-sm  ">

而且我无法提取 4.02。

我的代码如下:

rating = container.find_all(class_="star-rating star-rating-read rated")[0].text

我知道上面的代码不行,我能够提取产品的价格和名称,但我无法提取评级:(

解决方法

这是您可以尝试的解决方案,

import re

# regex extract the decimal digits from string
extract_ = re.compile(r"\d+.\d+") 

for div in container.find_all("div",attrs={"class": 'star-rating'}):
    for attr in div.attrs['class']:
        ratings_ = extract_.search(attr)

        if ratings_:
            print(ratings_.group())  # 4.02
,

尝试这样的事情:

rating = str(container.find_all(class_="star-rating")[0])
rindex = rating.index("rated")
print(rating[rindex+6:rindex+10])

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