• 爬取网易云音乐评论


    爬取网易云音乐评论保存CSV

    selenium的使用

    01 导入模块

    from selenium import webdriver
    

    02 打开浏览器 实例化对象

    driver = webdriver.Chrome()
    

    03 访问网址

    driver.get('https://www.baidu.com')
    

    04 根据id获取输入框

    shuru=driver.find_element_by_id('kw')
    

    05 向输入框输入内容

    shuru.send_keys('网易云音乐')
    

    06 找到百度一下按钮

    button=driver.find_element_by_id('su')
    
    点击一下
    
    button.click()
    

    07 关闭当前标签页

    driver.close()
    

    08 退出浏览器

    driver.quit()
    

    09 浏览器窗口

    最大化
    
    driver.maximize_window()
    
    最小化
    
    driver.minimize_window()
    

    10 滚动页面

    # ('window.scrollBy(左右滚动距离,上下滚动距离)','')
    
    driver.execute_script('window.scrollBy(0,500)','')
    

    11 在新标签页 打开网址

    driver.execute_script("window.open('https://music.163.com')")
    

    12 窗口切换

    # 首先要获取窗口 对象
    
    handles=driver.window_handles
    # 切换
    driver.switch_to_window(handles[-1])
    

    键盘事件

    from selenium.webdriver.common.keys import Keys
    
    driver.get('https://www.baidu.com')
    # send_keys('qq') 要输入的内容
    driver.find_element_by_id('kw').send_keys('qq')
    
    driver.find_element_by_id('su').send_keys(Keys.ENTER)
    
    # 刷新
    driver.refresh()
    

    完整代码

    #导入模块
    from selenium import webdriver
    import pandas as pd
    # 打开浏览器 实例化对象
    driver=webdriver.Chrome()
    # 访问网址
    driver.get('https://music.163.com')
    # 在新标签页 打开网址
    driver.execute_script("window.open('https://music.163.com/#/song?id=1426361558')")
    # 窗口切换
    # 首先要获取窗口 对象
    handles=driver.window_handles
    # 切换标签
    driver.switch_to_window(handles[-1])
    # 发现有 ifram,需要切换到iframe中
    # driver.switch_to_frame('iframe的id')
    # driver.switch_to_frame('iframe的name')
    # driver.switch_to_frame('driver.find_element_by_(" ")的到的对象')
    driver.switch_to_frame('g_iframe')
    parent=driver.find_element_by_class_name('cmmts')
    # 如果 爬内层 itm,用css选择器
    divs=parent.find_elements_by_css_selector('div.itm')
    mylist=[]
    for each_div in divs:
        mylist.append(each_div.find_element_by_class_name('cnt').text)
    mylist
    # 将列表转换为数据框
    df = pd.DataFrame(mylist)
    # 查看输出结果
    print(df)
    # 存入csv文档
    df.to_csv('output.csv', encoding='utf-8', index=False)
    
  • 相关阅读:
    Java中的List转换成JSON报错(一)
    关于侦听的注册
    TCMalloc小记
    ocp|ocm考证系列文章
    开源HTML5 APP开发神器CanTK发布
    实例级别的回滚
    MySQL查询所有数据库表出错
    java.lang.ArrayIndexOutOfBoundsException
    如何修改64位Eclipse中的代码字体大小
    gpt 分区容量错误
  • 原文地址:https://www.cnblogs.com/James-221/p/13776318.html
Copyright © 2020-2023  润新知