【爬虫项目-4】微博超话内容爬取/selenium使用教学

这篇具有很好参考价值的文章主要介绍了【爬虫项目-4】微博超话内容爬取/selenium使用教学。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、代码撰写目的

闲来无事想了解王者荣耀某个英雄最近的风评,例如是版本之子吗or出装怎么搭配or大家对策划这次改动有何看法,发现微博超话这方面的内容非常多,于是想把超话内容爬取下来做进一步数据分析。温馨提示 本代码可以适用于任何微博超话内容的爬取,只需修改url即可。

二、网页结构

可以看到超话一打开,网页是如下布局,一篇帖子大概包含如下一些信息:用户id、发布时间、来自xxx超话、帖子正文内容以及收藏、转发、评论、点赞数量。

微博超话数据爬虫,爬虫

再往下翻会发现,通常无法完整加载出来一整夜,会下翻会触发加载,所以说这是一个动态网页

微博超话数据爬虫,爬虫想要批量爬取上百页超话内容,我们不仅要克服动态加载还要实现自动翻页

三、代码主体

话不多说,上菜

版本一定要注意,selenium的版本会影响后面代码的编写

import time
from bs4 import BeautifulSoup #4.10.0
from selenium import webdriver #3.141.0
from xlrd import open_workbook
from xlutils.copy import copy
import eventlet#导入eventlet这个模块

配置webdriver,webdriver的路径根据自己实际进行配置,一定要下载和自己电脑谷歌浏览器版本相匹配的的webdriver否则会出现错误,怎么查看自己谷歌浏览器版本可以自行百度,Chromewebdriver下载链接也可以自行百度,网上一大堆,下载完成之后解压出来exe放到自己的项目路径下就可以。

这里的base_url可以根据自己爬取的超话进行修改,baseurl是用于后面翻页的,所以url最后是page=而不是page=xx(某一具体数字)

#调用selenium工具
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(executable_path=r"chromedriver.exe", options=options)

base_url = "https://s.weibo.com/weibo?q=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80%E8%B6%85%E8%AF%9D%E4%BC%A0%E7%BB%9F%E6%96%87%E5%8C%96&page="

下面这段代码用于登录微博(不登录的话无法批量爬取),其中cookies需要自己配置(登录自己的微博然后复制自己的cookies),cookies如何获取可以百度(真的很多教学,这里就不展开篇幅说了)

driver.get("https://weibo.com/p/100808ccb61d96c8f867d4f6c412e95c4f173a/super_index?current_page=3&since_id=4878245637659820&page=2#1678548112338")
driver.delete_all_cookies()
cookies ={}
for cookie in cookies:
    cookie_dict = {
    'domain': '.weibo.com',
'name': cookie.get('name'),
'value': cookie.get('value'),
"expires": cookie.get('value'),
'path': '/',
'httpOnly': False,
'HostOnly': False,
'Secure': False}
    driver.add_cookie(cookie_dict)
driver.refresh()

如果实在不会配置,可以采用下面这段代码,即直接暂停一分钟,自己手动登录一下

driver.get("https://weibo.com/p/100808ccb61d96c8f867d4f6c412e95c4f173a/super_index?current_page=3&since_id=4878245637659820&page=2#1678548112338")
driver.delete_all_cookies()
time.sleep(60)

下面这段代码用于解决动态加载,即一直自动下滑直到触底

driver.get(url)
time.sleep(5)
eventlet.monkey_patch()  # 必须加这条代码
with eventlet.Timeout(10, False):  # 设置超时时间为20秒
        while True:
            # 循环将滚动条下拉
            driver.execute_script("window.scrollBy(0,1000)")
            # sleep一下让滚动条反应一下
            time.sleep(0.05)
            # 获取当前滚动条距离顶部的距离
            check_height = driver.execute_script(
                "return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
            # 如果两者相等说明到底了
            if check_height >9000:
                break

再往下的代码都是用于定位元素,爬取内容的,真正的难题已经都被解决了,因为观察到有的帖子内容比较长,需要点击展开才能爬取完整内容,因此自动定位页面中所有展开字样并自动点击再进行帖子正文抓取

    elements = driver.find_elements_by_css_selector(
        "div.content p.txt a")
    for i in  elements:
        if "展开" in i.text:
            driver.execute_script("arguments[0].click()",i)

保存数据

    r_xls = open_workbook(r"帖子内容.xlsx")  # 读取excel文件
    row = r_xls.sheets()[0].nrows  # 获取已有的行数
    excel = copy(r_xls)  # 将xlrd的对象转化为xlwt的对象
    worksheet = excel.get_sheet(0)  # 获取要操作的sheet
    # 对excel表追加一行内容
    for i in range(len(chuantong)):
        worksheet.write(row, 0, chuantong[i])  # 括号内分别为行数、列数、内容

        row += 1
    excel.save(r"帖子内容.xlsx")  # 保存并覆盖文件

四、注意事项(完整的代码和数据在公主号和Github)

大家白嫖代码的时候一定要注意我标明的三方库版本,版本不对很有可能会出错,此外最后保存数据的方法有很多大家可以自行挑选更改。

最重要的一点,如果大家觉得有用跪求大家给我一个关注和点赞,有不懂的问题可以私信或者留言,欢迎大家关注我的公主号,上面有更多更详尽的代码,喜欢白嫖的有福了。

微博超话数据爬虫,爬虫

GitHub - Maekfei/Spider-projects: 爬虫实战,集合了数十个爬虫实战代码,全都亲测可用,借鉴麻烦点个star谢谢 同时欢迎访问我的github主页,copy代码的同时别忘了点个star 谢谢!文章来源地址https://www.toymoban.com/news/detail-854048.html

到了这里,关于【爬虫项目-4】微博超话内容爬取/selenium使用教学的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫项目实战2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取结果筛选符合条件的信息    岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接 3.筛选base杭州的岗位保存到csv文件中 But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以 4.基于csv分析后续

    2024年02月05日
    浏览(46)
  • Python爬虫 | 爬取微博和哔哩哔哩数据

    目录 一、bill_comment.py 二、bili_comment_pic.py 三、bilibili.py 四、bilihot_pic.py 五、bilisearch_pic.py 六、draw_cloud.py 七、weibo.py 八、weibo_comment.py 九、weibo_comment_pic.py 十、weibo_pic.py 十一、weibo_top.py 十二、weibo_top_pic.py 十三、weibo_top_pie.py 十四、pachong.py 十五、代码文件说明 pachong: b站、

    2024年02月12日
    浏览(55)
  • 微博数据采集,微博爬虫,微博网页解析,完整代码(主体内容+评论内容)

    参加新闻比赛,需要获取大众对某一方面的态度信息,因此选择微博作为信息收集的一部分 微博主体内容 微博评论内容 一级评论内容 二级评论内容 以华为发布会这一热搜为例子,我们可以通过开发者模式得到信息基本都包含在下面的 div tag中 我们通过网络这一模块进行解

    2024年03月14日
    浏览(48)
  • 爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

    👋 Hi, I’m @货又星 👀 I’m interested in … 🌱 I’m currently learning … 💞 I’m looking to collaborate on … 📫 How to reach me … README 目录(持续更新中) 各种错误处理、爬虫实战及模板、百度智能云人脸识别、计算机视觉深度学习CNN图像识别与分类、PaddlePaddle自然语言处理知识图谱、

    2024年02月04日
    浏览(45)
  • 爬虫与数据分析项目实战2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取结果筛选符合条件的信息    岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接 3.筛选base杭州的岗位保存到csv文件中 But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以 4.基于csv分析后续

    2024年02月08日
    浏览(44)
  • 【爬虫实战】用python爬取微博任意关键词搜索结果、exe文件

    项目功能简介: 1.交互式配置; 2.两种任意来源(直接输入、本地文件); 3.自动翻页(无限爬取); 4.指定最大翻页页码; 5.数据保存到csv文件; 6.程序支持打包成exe文件; 7.项目操作说明文档; 一.最终效果 视频演示: 用python爬取微博搜索结果、exe文件

    2024年02月02日
    浏览(66)
  • 用python语言爬虫爬取微博评论--上--初步爬虫(超详细版,大学生不骗大学生)

    目录 一、找到页面  二、学会使用检查元素 2.1 打开检查元素界面 2.2 找到所有评论所在的位置 2.2.1 搜索评论 2.2.2  找到data表 三、基础部分代码实现 ​​​​​​​ 全部已经更完(下面两个链接是中和下) https://blog.csdn.net/m0_68325382/article/details/137234661?spm=1001.2014.3001.5502 爬

    2024年04月10日
    浏览(52)
  • Python使用Selenium Webdriver爬取网页所有内容

    有时候,我们在用urllib或者requests库抓取页面时,得到的html源代码和浏览器中看到的不一样。这将是我们面临的一个非常常见的问题。现在网页越来越多地采用Ajax、前端模块化工具来构建,整个网页可能都是由JavaScript渲染出来的,也就是说原始的HTML代码可能就是一个空壳,

    2023年04月08日
    浏览(45)
  • Python爬虫|使用Selenium轻松爬取网页数据

    1. 什么是selenium? Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作浏览器一样。支持的浏览器包括IE,Firefox,Safari,Chrome等。 Selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用

    2024年02月04日
    浏览(55)
  • 【爬虫、数据可视化实战】以“人口”话题为例爬取实时微博数据并进行舆情分析

    近期在weibo上讨论的比较热的话题无非就是“人口”了。TaoTao也看了一些大家发的内容。但是感觉单纯的看文字内容不能很直观的反应出来大家的关切。索性就使用爬虫对数据进行爬取,同时结合着数据可视化的方式让数据自己开口说话。那么接下来就让我们使用技术进行分

    2024年01月23日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包