爬取某人的微博数据,把某人所有时间段的微博数据都爬下来。

具体思路:

创建driver—–get网页—-找到并提取信息—–保存csv—-翻页—-get网页(开始循环)—-…—-没有“下一页”就结束,

用了while True,没用自我调用函数

嘟大海的微博:https://weibo.com/u/1623915527

办公室小野的微博:https://weibo.com/bgsxy

代码如下from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import csv

import os

import time

#只有这2个参数设置,想爬谁的微博数据就在这里改地址和目标csv名称就行

weibo_url = 'https://weibo.com/bgsxy?profile_ftype=1&is_all=1#_0'

csv_name = 'bgsxy_allweibo.csv'

def start_chrome():

print('开始创建浏览器')

driver = webdriver.Chrome(executable_path='C:/Users/lori/Desktop/python52project/chromedriver_win32/chromedriver.exe')

driver.start_client()

return driver

def get_web(url): #获取网页,并下拉到最底部

print('开始打开指定网页')

driver.get(url)

time.sleep(7)

scoll_down()

time.sleep(5)

def scoll_down(): # 滚轮下拉到最底部

html_page = driver.find_element_by_tag_name('html')

for i in range(7):

print(i)

html_page.send_keys(Keys.END)

time.sleep(1)

def get_data():

print('开始查找并提取数据')

card_sel = 'div.WB_cardwrap.WB_feed_type'

time_sel = 'a.S_txt2[node-type="feed_list_item_date"]'

source_sel = 'a.S_txt2[suda-uatrack="key=profile_feed&value=pubfrom_guest"]'

content_sel = 'div.WB_text.W_f14'

interact_sel = 'span.line.S_line1 span em:nth-child(2)'

cards = driver.find_elements_by_css_selector(card_sel)

info_list = []

for card in cards:

time = card.find_elements_by_css_selector(time_sel)[0].text #虽然有可能在一个card中有2个time元素,我们取第一个就对

if card.find_elements_by_css_selector(source_sel):

source = card.find_elements_by_css_selector(source_sel)[0].text

else:

source = ''

content = card.find_elements_by_css_selector(content_sel)[0].text

link = card.find_elements_by_css_selector(time_sel)[0].get_attribute('href')

trans = card.find_elements_by_css_selector(interact_sel)[1].text

comment = card.find_elements_by_css_selector(interact_sel)[2].text

like = card.find_elements_by_css_selector(interact_sel)[3].text

info_list.append([time,source,content,link,trans,comment,like])

return info_list

def save_csv(info_list,csv_name):

csv_path = './' + csv_name

print('开始写入csv文件')

if os.path.exists(csv_path):

with open(csv_path,'a',newline='',encoding='utf-8-sig') as f: #newline=''避免空行;encoding='utf-8-sig'比utf8牛,保存中文没问题

writer = csv.writer(f)

writer.writerows(info_list)

else:

with open(csv_path,'w+',newline='',encoding='utf-8-sig') as f:

writer = csv.writer(f)

writer.writerow(['发布时间','来源','内容','链接','转发数','评论数','点赞数'])

writer.writerows(info_list)

time.sleep(5)

def next_page_url():

next_page_sel = 'a.page.next'

next_page_ele = driver.find_elements_by_css_selector(next_page_sel)

if next_page_ele:

return next_page_ele[0].get_attribute('href')

else:

return None

driver = start_chrome()

input('请在chrome中登录weibo.com') # 暂停程序,手动登录weibo.com

while True:

get_web(weibo_url)

info_list = get_data()

save_csv(info_list,csv_name)

if next_page_url():

weibo_url = next_page_url()

else:

print('爬取结束')

break

以上就是本文的全部内容,希望对大家的学习有所帮助。

python爬取微博评论点赞数_Python selenium爬取微博数据代码实例相关推荐

  1. python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据

    python 爬虫 爬微博分析 数据 最近刚看完爱情公寓5,里面的大力也太好看了吧... 打开成果的微博,小作文一样的微博看着也太爽了吧... 来 用python分析分析 狗哥这几年微博的干了些啥. ...

  2. python爬取微博评论点赞数_python爬取点赞评论数

    马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 清歌终南 于 2018-3-24 22:35 编辑 看了小甲鱼老师的爬取网易云音乐热门评 ...

  3. python监听文件最后修改人_Python持续监听文件变化代码实例

    在日常的工作中,有时候会有这样的需求,需要一个常驻任务,持续的监听一个目录下文件的变化,对此作出回应. pyinotify就是这样的一个python包,使用方式如下: 一旦src.txt有新的内容,程 ...

  4. python实现一个简单的加法计算器_Python tkinter实现简单加法计算器代码实例

    tkinter 是 Python 的标准 GUI 库.Python 使用 tkinter 可以快速的创建 GUI 应用程序.由于 tkinter 是内置到 python 的安装包中.只要安装好 Pyt ...

  5. python刷b站视频浏览量_python + selenium 刷B站播放量的实例代码

    B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...

  6. 简单爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页

    爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页 1.什么是ajax异步数据交换网页 2.用到的工具模块和简单解释 3.网页内容解析 4.代码实现及解释 1.什么是ajax异步数据交换网页 ...

  7. python爬取多页数据_python爬虫实现爬取同一个网站的多页数据代码实例

    本篇文章小编给大家分享一下python爬虫实现爬取同一个网站的多页数据代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.爬虫的目的 从网上获 ...

  8. python从文件中读取数据_使用Python脚本从文件读取数据代码实例

    这篇文章主要介绍了使用Python脚本从文件读取数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近自学Python的进度比较慢,工作之 ...

  9. 微博点赞数等信息和公众号点赞数等信息爬取

    一:微博 因为GitHub页面中已有非常详细的描述,这里只贴出地址和运行结果. 地址: https://github.com/dataabc/weiboSpider 运行结果:(获取点赞数,转发数,评 ...

最新文章

  1. Python中完整的机器学习数据科学课程
  2. 《css世界》的那些实用技巧
  3. 8086PC机的内存地址空间分配
  4. 解决工控网络通信协议威胁的实践
  5. VTK:相互作用之KeypressEvents
  6. 信息学奥赛一本通C++语言——1087:级数求和
  7. 如何在React中使用功能组件
  8. golang依赖接口,不要依赖具体实现
  9. java正则表达式笔记_java正则表达式笔记
  10. Cards BZOJ 1004
  11. mysql的事物隔离机制?
  12. 2021年软考网络工程师专题突破视频教程
  13. 全面解释java中StringBuilder、StringBuffer、String类之间的关系
  14. html情侣相册,浪漫的情侣相册名字
  15. 评论抓取:Python爬取AppStore上的评论内容及星级,突破500条限制
  16. 淘宝/天猫获取sku详情API接口
  17. 利用开区间覆盖的约简给出有限覆盖定理的一个新证明
  18. 数据分析师需要学习什么课程?
  19. 4.Nginx优化,谁用谁说好
  20. Spring 02

热门文章

  1. 在到达胜利之前无法回头
  2. 计算机由哪几种显卡,各类显卡大比拼,你会选择哪一款显卡使用?
  3. Github图片无法显示解决(Mac版)
  4. ZUCC_Object Oriented Programming_Lab01 Introduction to Java
  5. 鼠标点击特效:canvas点击效果
  6. 测试适合眉形的软件_扫一扫测眉毛 测试适合眉型的软件
  7. svn: E155019: Can't upgrade as it is not a pre-1.7 work解决办法
  8. 北师大1903计算机在线答案,[南开大学(本部)]20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业-2...
  9. 移动端 背景音乐 自动播放
  10. 哪款分体式蓝牙耳机体验最好?便宜好用的分体式蓝牙耳机!