iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用python爬取网页版QQ空间
  • 467
分享到

使用python爬取网页版QQ空间

2023-06-15 08:06:34 467人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关使用python爬取网页版QQ空间,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。各类图表的实现效果爬取的说说内容个性化说说内容词云图每年发表说说总数柱状图、每年点赞和评论

这期内容当中小编将会给大家带来有关使用python爬取网页版QQ空间,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

各类图表的实现效果

使用python爬取网页版QQ空间

爬取的说说内容

使用python爬取网页版QQ空间

个性化说说内容词云图

使用python爬取网页版QQ空间

每年发表说说总数柱状图、每年点赞和评论折线图

使用python爬取网页版QQ空间

7天好友动态柱状图、饼图

使用python爬取网页版QQ空间

使用方法

按照你的谷歌浏览器下载指定版本的驱动 Http://chromedriver.storage.Googleapis.com/index.html

使用python爬取网页版QQ空间

使用python爬取网页版QQ空间

驱动跟两个Python脚本放入同目录,我的版本是90.0.4430的,查看你自己的版本,下载后把我的chromedriver.exe替换掉!

使用python爬取网页版QQ空间

这里用到了很多第三方包,鼠标放在报红的包名下,用Alt+Enter导包,如果失败则在控制台用下面的必杀技

pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

使用python爬取网页版QQ空间

主要代码

qq空间txt.py

import timefrom selenium import WEBdriverfrom lxml import etree# 这里一定要设置编码格式,防止后面写入文件时报错friend = '1569339843'  # 朋友的QQ号,朋友的空间要求允许你能访问user = '783533896'  # 你的QQ号pw = '1323mkoNJI.@'  # 你的QQ密码# 获取浏览器驱动chrome_driver = 'chromedriver.exe'driver = webdriver.Chrome(executable_path=chrome_driver)# 浏览器窗口最大化driver.maximize_window()# 浏览器地址定向为qq登陆页面driver.get("http://i.qq.com")# 所以这里需要选中一下frame,否则找不到下面需要的网页元素driver.switch_to.frame("login_frame")time.sleep(3)# 自动点击账号登陆方式driver.find_element_by_id("switcher_plogin").click()time.sleep(3)# 账号输入框输入已知qq账号driver.find_element_by_id("u").send_keys(user)time.sleep(5)# 密码框输入已知密码driver.find_element_by_id("p").send_keys(pw)time.sleep(5)# 自动点击登陆按钮driver.find_element_by_id("login_button").click()time.sleep(5)# 让webdriver操纵当前页driver.switch_to.default_content()time.sleep(5)# 跳到说说的url, friend你可以任意改成你想访问的空间driver.get("http://user.qzone.qq.com/" + friend + "/311")time.sleep(5)next_num = 0  # 初始“下一页”的idwhile True:    # 下拉滚动条,使浏览器加载出动态加载的内容,    # 我这里是从1开始到6结束 分5 次加载完每页数据    for i in range(1, 6):        height = 20000 * i  # 每次滑动20000像素        strWord = "window.scrollBy(0," + str(height) + ")"        driver.execute_script(strWord)        time.sleep(4)    # 很多时候网页由多个<frame>或<iframe>组成,webdriver默认定位的是最外层的frame,    # 所以这里需要选中一下说说所在的frame,否则找不到下面需要的网页元素    driver.switch_to.frame("app_canvas_frame")    selector = etree.HTML(driver.page_source)    divs = selector.xpath('//*[@id="msgList"]/li/div[3]')    # 这里使用 a 表示内容可以连续不清空写入    with open('qq_word.txt', 'a', encoding="utf-8") as f:        for div in divs:            qq_name = div.xpath('./div[2]/a/text()')            qq_content = div.xpath('./div[2]/pre/text()')            qq_time = div.xpath('./div[4]/div[1]/span/a/text()')            qq_praise = div.xpath('./div[4]/div[2]/span/span/a[2]/text()')            qq_comment = div.xpath('./div[4]/div[2]/a[3]/text()')            qq_name = qq_name[0] if len(qq_name) > 0 else ''            qq_content = qq_content[0] if len(qq_content) > 0 else ''            qq_content = qq_content.replace('\n', ' ')            qq_time = qq_time[0] if len(qq_time) > 0 else ''            qq_praise = qq_praise[0] if len(qq_praise) > 0 else ''            qq_comment = qq_comment[0] if len(qq_comment) > 0 else ''            print(qq_name, qq_time, qq_content, qq_praise, qq_comment)            f.write(qq_content + "\n")    # 当已经到了尾页,“下一页”这个按钮就没有id了,可以结束了    if driver.page_source.find('pager_next_' + str(next_num)) == -1:        break    # 找到“下一页”的按钮,因为下一页的按钮是动态变化的,这里需要动态记录一下    driver.find_element_by_id('pager_next_' + str(next_num)).click()    # “下一页”的id    next_num += 1    # 因为在下一个循环里首先还要把页面下拉,所以要跳到外层的frame上    driver.switch_to.parent_frame()# 关闭浏览器driver.quit()

各种图表的生成

import pandas as pdfrom pyecharts.charts import Barfrom pyecharts.charts import Pieimport pyecharts.options as optsfrom pyecharts.charts import Lineimport redf_excel = pd.read_excel('qq_excel.xlsx')  # 默认读取sheet=0 Pandas DataFrame'def getTimeStr(row):    item = row['时间']    if pd.isnull(item) | pd.isna(item):        return    data = item.split('年')[0]    return data# 按年统计说说数量def readCount(result, row):    timeData = getTimeStr(row)    if timeData == None: return    if timeData in result.keys():        result[timeData] += 1    else:        result[timeData] = 1# 按年统计说说点赞数def readThumb(result, row):    item = row['赞']    if pd.isnull(item):        return    # data = re.match(r'赞\((\d+).*', item, re.M | re.I)    if len(item.split("(")) <= 1:        return    data = item.split("(")[1].split(")")[0]    timeData = getTimeStr(row)    if timeData == None: return    if timeData in result.keys():        result[timeData] += int(data)    else:        result[timeData] = int(data)# 按年统计说说评论数def readComment(result, row):    item = row['评论']    if pd.isnull(item):        return    # data = re.match(r'赞\((\d+).*', item, re.M | re.I)    if len(item.split("(")) <= 1:        return    data = item.split("(")[1].split(")")[0]    timeData = getTimeStr(row)    if timeData == None: return    if timeData in result.keys():        result[timeData] += int(data)    else:        result[timeData] = int(data)def readExcel(df_excel):    count = {}    result = {}    thumb = {}    comment = {}    for index, row in df_excel.iterrows():        readCount(count, row)        readThumb(thumb, row)        readComment(comment, row)    result['count'] = count    result['thumb'] = thumb    result['comment'] = comment    return resultdef geTKEyAndVal(keyWord):    data = readExcel(df_excel).get(keyWord)    key = []    value = []    for item in data.keys():        key.append(item)        value.append(data[item])    key.reverse()    value.reverse()    return [key, value]# 统计每年发表说说次数柱状图def paintBar():    count = readExcel(df_excel).get('count')    # V1 版本开始支持链式调用    data = getKeyAndVal('count')    print(data[0])    d = (        Bar()            .add_xaxis(data[0])            .add_yaxis("每年发表说说总数", data[1])            .render("每年发表说说总数柱状图.html")    )paintBar()# 统计点赞和评论折线图def paintLine():    commentData = getKeyAndVal('comment')    thumbData = getKeyAndVal('thumb')    xaxis_data = commentData[0]    commentValue = commentData[1]    thumbValue = thumbData[1]    d = (        Line()            .add_xaxis(xaxis_data=xaxis_data)            .add_yaxis("每年评论数", y_axis=commentValue)            .add_yaxis("每年点赞数", y_axis=thumbValue)            .render("每年点赞和评论折现图.html")  # 输出图形    )paintLine()

上述就是小编为大家分享的使用python爬取网页版QQ空间了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: 使用python爬取网页版QQ空间

本文链接: https://www.lsjlt.com/news/278829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用python爬取网页版QQ空间
    这期内容当中小编将会给大家带来有关使用python爬取网页版QQ空间,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。各类图表的实现效果爬取的说说内容个性化说说内容词云图每年发表说说总数柱状图、每年点赞和评论...
    99+
    2023-06-15
  • qq空间网页版进不去怎么回事
    qq空间网页版进不去的原因:1、浏览器有缓存;2、浏览器设置有问题;3、浏览器存在问题;4、电脑防火墙设置有问题。qq空间是腾讯公司旗下的一款社交网络平台,拥有庞大的用户群体。它提供了个人主页、动态分享、相册管理、日志发布等功能,让用户可以...
    99+
    2023-07-14
  • qq空间网页版登陆不了怎么办
    qq空间网页版登陆不了解决方法:1、确保网络连接正常;2、尝试清除浏览器缓存和Cookie;3、尝试使用其他浏览器登录;4、尝试清除DNS缓存;6、尝试联系空间的客服团队。QQ空间网页版登陆不了,这可能是由于一系列因素造成的。在这篇文章中,...
    99+
    2023-07-14
  • 使用 Python 爬取网页数据
    1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集...
    99+
    2023-01-31
    网页 数据 Python
  • 怎么使用Python爬取QQ密码
    非法获取他人的账号密码是违法行为,并且严重侵犯了他人的隐私权。强烈不建议或支持这样的行为。爬取QQ密码是非法的,且侵犯了个人隐私。违...
    99+
    2023-08-31
    Python
  • ubuntu14.04下如何使用网页版qq
    这篇文章将为大家详细讲解有关ubuntu14.04下如何使用网页版qq,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  不论到了什么平台,qq还是离不开的,至少在国内是这样。刚入门ubuntu时,就迫不及...
    99+
    2023-06-13
  • 为什么qq空间网页打不开
    qq空间网页打不开原因:1、网络连接问题;2、服务器问题;3、账号被封禁或被限制访问;4、使用的设备和浏览器与QQ空间不兼容。随着互联网的快速发展,社交媒体已经成为人们生活中不可或缺的一部分。作为中国最大的社交媒体之一,QQ空间每天都有数以...
    99+
    2023-07-14
  • 怎么使用python爬取网页图片
    本篇内容介绍了“怎么使用python爬取网页图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在现在这个信息爆炸的时代,要想高效的获取数据,...
    99+
    2023-07-02
  • Python 爬取网页中JavaScri
    当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息。但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据。此时,如果我们仍采用常规方法从中抓取数据,那么我们将一无所获。那么...
    99+
    2023-01-30
    网页 Python JavaScri
  • Python实战使用Selenium爬取网页数据
    目录一. 什么是Selenium?二. 安装Selenium三. 爬取网页数据四. 模拟用户交互五. 处理动态加载内容1. 显式等待2. 隐式等待六. 小结一. 什么是Seleniu...
    99+
    2023-05-18
    Python Selenium爬取网页数据 Python Selenium
  • Python 爬虫:如何用 BeautifulSoup 爬取网页数据
    在网络时代,数据是最宝贵的资源之一。而爬虫技术就是一种获取数据的重要手段。Python 作为一门高效、易学、易用的编程语言,自然成为了爬虫技术的首选语言之一。而 BeautifulSoup 则是 Py...
    99+
    2023-10-23
    python 爬虫 beautifulsoup
  • 如何用python爬取网页数据
    要用Python爬取网页数据,可以使用Python的一些库和模块,例如requests、BeautifulSoup和Scrapy等。...
    99+
    2023-10-12
    python
  • Python应用开发——爬取网页图片
    Python应用开发——爬取网页图片 目录 Python应用开发——爬取网页图片前言1 爬取原理讲解1.1 查看网页源代码1.2 分析网页源码并制定对应的爬取方案1.3 完善爬取流程和细节 ...
    99+
    2023-09-10
    python 爬虫 网页图片
  • python怎么爬取豆瓣网页
    这篇文章主要介绍了python怎么爬取豆瓣网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python 语法简要介绍python 的基础语法大体与c语言相差不大,由于省去了...
    99+
    2023-06-14
  • python如何爬取网页图片
    要使用Python爬取网页图片,可以使用requests库来发送HTTP请求,然后使用beautifulsoup库或者正则表达式来解...
    99+
    2023-08-20
    python
  • Python用requests-html爬取网页的实现
    目录1. 开始2. 原理3. 元素定位css 选择器4. CSS 简单规则5. Xpath简单规则6. 人性化操作7. 加载 js8. 总结1. 开始 Python 中可以进行网页解...
    99+
    2024-04-02
  • python爬虫爬取bilibili网页基本内容
    用爬虫爬取bilibili网站排行榜游戏类的所有名称及链接: 导入requests、BeautifulSoup import requests from bs4 import Be...
    99+
    2024-04-02
  • 怎么使用matlab爬取网页图片
    要使用Matlab来爬取网页图片,可以使用以下步骤:1. 首先,需要安装和配置Matlab的Web Access Toolbox。这...
    99+
    2023-08-20
    matlab
  • Python爬虫之使用BeautifulSoup和Requests抓取网页数据
    目录一、简介二、网络爬虫的基本概念三、Beautiful Soup 和 Requests 库简介四、选择一个目标网站五、使用 Requests 获取网页内容六、使用 Beautifu...
    99+
    2023-05-14
    Python爬虫 使用BeautifulSoup和Requests Python爬虫抓取网页数据
  • 怎么用python爬虫抓取网页文本
    使用Python爬虫抓取网页文本可以使用第三方库requests和beautifulsoup。首先,安装requests和beaut...
    99+
    2023-10-18
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作