栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium爬取评论

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium爬取评论

from selenium import webdriver

driver=webdriver.Chrome()
# 自动访问的网站
driver.get("http://www.santostang.com/2018/07/04/hello-world/")

fo = open("result.txt", "a+")
fo.truncate(0)

for ii in range(0, 3):
    # i指的是每页有10小页
    for i in range(0, 10):
        # 下滑到页面底部
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        # 爬取某一页的所有评论
        driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere-comment']"))
        driver.implicitly_wait(10)  # 隐性等待10秒
        comment = driver.find_elements_by_css_selector('div.reply-content')
        print()
        print("第 %g 页评论:" % int(i + 1 + ii * 10))
        # 打开一个文件
        fo = open("result.txt", "a+")
        fo.write('n')
        fo.write("第 %g 页评论:" % int(i + 1 + ii * 10) + 'n')
        # 打印所有评论
        for eachcomment in comment:
            content = eachcomment.find_element_by_tag_name('p')
            print(content.text)
            # fo.write(content.text.encode("gbk", 'ignore').decode("gbk", "ignore"))
            text = content.text.encode('GBK', 'ignore').decode('GBk')
            fo.write(text + 'n')
        fo.close()

        # 获取所有的页码按钮
        page_btn = driver.find_elements_by_class_name("page-btn")
        # 统计这一页总共有多少页评论,默认最多为10页
        page_btn_size = len(page_btn)
        if i == page_btn_size - 1:
            driver.switch_to.default_content()
            driver.implicitly_wait(10)
            break
        # 按顺序点击某一页
        if i != 9 and i + 1 < page_btn_size:
            page_btn[i + 1].click()
        # 把iframe又转回去,注意加上这一句
        driver.switch_to.default_content()
        # 如果网速慢,可以适当增加隐性等待时间
        driver.implicitly_wait(15)

    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere-comment']"))
    # 判断页面是否有下一页的按钮,没有就退出
    try:
        next_page = driver.find_element_by_class_name("page-last-btn")
        next_page.click()
        # 把iframe又转回去,注意加上这一句
        driver.switch_to.default_content()
        driver.implicitly_wait(10)
    except:
        print()
        print("爬取结束!(不是爬取内容)")

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号