博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用python3 爬取微博评论(作者,时间,点赞数,楼数,评论)存储为excel格式
阅读量:2054 次
发布时间:2019-04-28

本文共 2857 字,大约阅读时间需要 9 分钟。

其中的Cookie需要根据自己电脑端的数据进行处理。

****和路径值记得修改

 

 代码如下:

import requestsimport timeimport osimport csvimport codecsimport sysimport jsonimport importlibfrom openpyxl import load_workbookimport openpyxlfrom bs4 import BeautifulSoupimportlib.reload(sys) #要爬取热评的起始urlurl='https://m.weibo.cn/comments/hotflow?id=4393956248857472&mid=4393956248857472&max_id='headers={        'Cookie':'自己电脑端的cookie',        'Referer': 'https://m.weibo.cn/detail/4393956248857472',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',        'X-Requested-With': 'XMLHttpRequest'} def get_page(max_id, id_type):#参数    params={            'max_id':max_id,            'max_id_type': id_type            }    try:        r=requests.get(url, params=params, headers=headers)        if r.status_code==200:            return r.json()    except requests.ConnectionError as e:        print('error',e.args) def parse_page(jsondata):    if jsondata:        items=jsondata.get('data')        item_max_id={}        item_max_id['max_id']=items['max_id']        item_max_id['max_id_type']=items['max_id_type']        return item_max_iddef write_excel_title():    path = 'E:/EmotionTest/weibo.xlsx'    #excel左下角表单名称    sheet_name_xlsx = '陈伟霆-垃圾分类'    workbook = openpyxl.Workbook()    sheet = workbook.active    sheet.title = sheet_name_xlsx    sheet.cell(row=1, column=1, value=str('作者'))    sheet.cell(row=1, column=2, value=str('时间'))    sheet.cell(row=1, column=3, value=str('点赞数'))    sheet.cell(row=1, column=4, value=str('楼数'))    sheet.cell(row=1, column=5, value=str('评论'))    workbook.save(path)    print("xlsx格式表格写入数据成功!")def write_excel_xlsx(jsondata,count):    path = 'E:/EmotionTest/weibo.xlsx'    datas = jsondata.get('data').get('data')    #在原数据的基础上加上新数据    workbook = load_workbook(path)    sheet = workbook.active    j=count+1    for data in datas:        username = data.get("user").get("screen_name")        sheet.cell(column=1, row=j+1, value=str(username))        created_at = data.get("created_at")        sheet.cell(column=2, row=j+1, value=str(created_at))        like_count = data.get("like_count")        sheet.cell(column=3, row=j+1, value=str(like_count))        floor_number = data.get("floor_number")        sheet.cell(column=4, row=j+1, value=str(floor_number))        comment = data.get("text")        comment = BeautifulSoup(comment,'lxml').get_text()        sheet.cell(column=5, row=j+1, value=str(comment))        j = j+1    workbook.save(path)    print("xlsx格式表格写入数据成功!")                        maxpage = 5m_id = 0id_type = 0write_excel_title()i = 0for page in range(0,maxpage):    print(page)    jsondata=get_page(m_id, id_type)    write_excel_xlsx(jsondata,i*20)    results=parse_page(jsondata)    time.sleep(1)    m_id=results['max_id']    id_type=results['max_id_type']    i = i+1

 

转载地址:http://jbdlf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>