简单使用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")

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 19:26:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 19:26:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 19:26:03       87 阅读
  4. Python语言-面向对象

    2023-12-10 19:26:03       96 阅读

热门阅读

  1. MyBatis-xml版本

    2023-12-10 19:26:03       65 阅读
  2. RabbitMQ安装在Linux系统详细教程

    2023-12-10 19:26:03       61 阅读
  3. OD机考真题搜集:宜居星球改造计划

    2023-12-10 19:26:03       57 阅读
  4. [ES]ElasticSearch强转日期的时区问题

    2023-12-10 19:26:03       54 阅读
  5. ubuntu源配置文件/etc/apt/sources.list不存在

    2023-12-10 19:26:03       64 阅读
  6. uniapp小程序分享为灰色

    2023-12-10 19:26:03       52 阅读
  7. pdb 调试 python 代码

    2023-12-10 19:26:03       70 阅读
  8. 基于TCP协议的socket通信过程

    2023-12-10 19:26:03       48 阅读
  9. Android Kotlin语言下的文件存储

    2023-12-10 19:26:03       47 阅读
  10. fetch 和 ajax 的区别

    2023-12-10 19:26:03       54 阅读