当前位置: 首页 > article >正文

简单使用selenium抓取微博热搜话题存储进Excel表格中

 

#test.py

import requests
from selenium import webdriver
import time
from write import write

#首先打开浏览器
drive = webdriver.Chrome()

#设置隐式等待:等待元素找到,如果找到元素则马上继续执行语句,如果找不到元素,会在设定时间内不断请求寻找元素,当超过设定时间还未找到,则抛出异常
#这里设置等待5s
drive.implicitly_wait(5)

#将浏览器窗口最大化
drive.maximize_window()

#进入网址页面
drive.get('https://weibo.com/newlogin?tabtype=topic&gid=&openLoginLayer=0&url=https%3A%2F%2Fwww.weibo.com%2F')

#打开页面后页面将停留3秒
#time.sleep(3)

#通过css定位寻找元素,这里用class定位
#热搜话题标题
titles = drive.find_elements_by_css_selector(".HotTopic_tit_eS4fv")
#热搜话题内容
contents = drive.find_elements_by_css_selector(".HotTopic_wbtext_iNPG5")
#热搜话题阅读数量
reads = drive.find_elements_by_css_selector(".HotTopic_num_1H-j8>span:first-child")
#热搜话题讨论数量
discusss = drive.find_elements_by_css_selector(".HotTopic_num_1H-j8>span:last-child")

#获取titles的长度
length = len(titles)

#调用写入表格方法
write(1,length,titles)
write(2,length,contents)
write(3,length,reads)
write(4,length,discusss)

#关闭浏览器
drive.quit()
#write.py

from openpyxl import load_workbook,Workbook


def write(pt,length,data):
    #设置异常处理,当try内的代码执行有误,将抛出except里的异常提示
    try:
        #加载已有表单
        wb = load_workbook('./weibo.xlsx') #  ./路径为同个文件夹下查找文件; ../为同个父级路径下查找文件
        #找到表单里的第一个sheet
        sh = wb.active
        #行数循环,第一行是表头,因此从第二行开始,range()为左闭右开,range(0,8)即0开始,7结束
        for i in range(2,length+2):
            #将对应位置的单元格填充进数据
            sh.cell(row=i,column=pt).value=data[i-2].text    #text:获取元素的描述,即获取找到的元素中的 <p>天下第一<p> 天下第一
        #保存文档
        wb.save('./weibo.xlsx')
    except Exception:
        print("写入有误")


# def test():
      #创建一个表单
#     wb = Workbook()
#     sh = wb.active
#     title = ["标题","内容"]
      #将表头的名称插入表单
      #方法一
#     # for i in range(1,3):
#     #     sh.cell(row=1,column=i).value = title[i-1]
      #方法二
#     sh.append(title)
#     print("成功")
#     wb.save("./test.xlsx")


http://www.kler.cn/news/160596.html

相关文章:

  • TTS声音合成:paddlespeech、sherpa-onnx、coqui-ai
  • 机器学习笔记 - 如何在Python中对网格和点云进行体素化?
  • 【CSP】202209-1_如此编码Python实现
  • 2022年第十一届数学建模国际赛小美赛B题序列的遗传过程解题全过程文档及程序
  • 有关thingsboard中 api的 jwt研究
  • 利用JavaFX生成验证码图片
  • mysql服务日志打印,时区不对的问题
  • 【C语言】7-38 吉老师的回归 分数 15
  • 《异常检测——从经典算法到深度学习》24 用于单变量时间序列异常检测的端到端基准套件
  • Chapter 7. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理 - 1
  • Cocos Creator加入图片没有被识别
  • 【算法】约瑟夫环
  • Audacity降噪消除视频中杂音
  • 面试操作系统八股文五问五答第一期
  • OSI七层模型与TCP/IP四层模型
  • 《形式语言与自动机理论(第4版)》笔记(二)
  • elment-ui部分ui组件在移动端也能实现自适应
  • Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能
  • 【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第一次作业
  • 【前端设计模式】之工厂模式
  • 文档一键黏贴供应商
  • sql常用语法练习
  • WTV380语音芯片赋能电蒸锅:智能声音提示与数码管显示驱动引领未来厨房革新
  • linux的磁盘管理
  • 基于PicGo实现Typora图片自动上传GitHub
  • 【EI会议征稿中】第三届信号处理与通信安全国际学术会议(ICSPCS 2024)
  • 五花八门客户问题(BUG) - 重复打印
  • 华为配置流量抑制示例
  • linux逻辑卷LVM
  • 【LeetCode刷题】-- 79.单词搜索