【问题标题】:r.html.find only gets 1 item instead of allr.html.find 仅获得 1 项而不是全部
【发布时间】:2021-10-12 19:48:11
【问题描述】:

我有一个脚本,通过请求 html 按类别抓取项目。

            reviewtext = r.html.find(
            'strong.reviews__item-title', first=True).text

但是,虽然抓取的类被分类到页面上的多个元素(评论),但只有一个项目(第一个评论)被抓取。

我如何正确实现 for 循环或类似的东西,以便我的程序抓取前 3 个或一定数量的产品评论,而不仅仅是第一个?

我尝试抓取的示例产品网址:https://www.coolblue.de/produkt/832192/eufy-by-anker-robovac-35c.html#product-reviews

【问题讨论】:

    标签: web-scraping python-requests-html


    【解决方案1】:

    试试:

    reviewtexts = r.html.findAll(strong.reviews__item-title')
    
    for reviewtext in reviewtexts:
        print(reviewtext.text)
    

    【讨论】:

    • 遗憾的是那里没有打印任何东西。似乎 for 循环不适合它
    • 评论数据是动态的。你需要像硒这样的东西
    • 动态是什么意思
    • 表示数据不在 html Dom 中。它们由javascript控制
    • 但是源码中评论上面没有script标签所以不受js控制
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多