校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python爬取網頁版QQ空間,生成各類圖表

python爬取網頁版QQ空間,生成各類圖表

熱門標簽:佛山400電話辦理 地圖標注面積 所得系統電梯怎樣主板設置外呼 小蘇云呼電話機器人 朝陽手機外呼系統 北瀚ai電銷機器人官網手機版 儋州電話機器人 市場上的電銷機器人 北京電銷外呼系統加盟

github源碼地址:

https://github.com/kuishou68/python

各類圖表的實現效果

爬取的說說內容

個性化說說內容詞云圖

每年發表說說總數柱狀圖、每年點贊和評論折線圖

7天好友動態柱狀圖、餅圖

使用方法

按照你的谷歌瀏覽器下載指定版本的驅動 http://chromedriver.storage.googleapis.com/index.html

驅動跟兩個python腳本放入同目錄,我的版本是90.0.4430的,查看你自己的版本,下載后把我的chromedriver.exe替換掉!

這里用到了很多第三方包,鼠標放在報紅的包名下,用Alt+Enter導包,如果失敗則在控制臺用下面的必殺技

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

主要代碼

qq空間txt.py

import time
from selenium import webdriver
from 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  # 初始“下一頁”的id

while 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 pd
from pyecharts.charts import Bar
from pyecharts.charts import Pie
import pyecharts.options as opts
from pyecharts.charts import Line

import re

df_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 result

def 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 爬取QQ空間的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python實現QQ空間自動點贊功能
  • Python爬取qq空間說說的實例代碼
  • 用Python登錄好友QQ空間點贊的示例代碼
  • python從Oracle讀取數據生成圖表
  • Python讀取Excel數據并生成圖表過程解析
  • python 用 xlwings 庫 生成圖表的操作方法
  • python xlsxwriter庫生成圖表的應用示例

標簽:寧夏 云南 商丘 金融催收 江蘇 定西 酒泉 龍巖

巨人網絡通訊聲明:本文標題《python爬取網頁版QQ空間,生成各類圖表》,本文關鍵詞  python,爬取,網頁,版,空間,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python爬取網頁版QQ空間,生成各類圖表》相關的同類信息!
  • 本頁收集關于python爬取網頁版QQ空間,生成各類圖表的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲午夜视频在线观看| 亚洲国产精品av| 日韩亚洲欧美中文三级| 2019国产精品| 亚洲精品中文在线| 日本视频免费一区| 大桥未久av一区二区三区中文| 日本欧洲一区二区| 99精品在线免费| 717成人午夜免费福利电影| 精品少妇一区二区三区日产乱码| 中文字幕一区二区视频| 日本成人在线不卡视频| 日本精品免费观看高清观看| 久久先锋影音av鲁色资源网| 亚洲国产日日夜夜| 波多野结衣中文字幕一区| 欧美一区二区三区不卡| 亚洲欧美一区二区视频| 九色综合国产一区二区三区| 99在线精品视频| 久久免费看少妇高潮| 午夜精品福利在线| 91久久香蕉国产日韩欧美9色| 欧美国产日韩精品免费观看| 久久精品99久久久| 日韩精品影音先锋| 日韩电影一区二区三区四区| 色婷婷av一区二区三区软件| 亚洲免费资源在线播放| 成人久久久精品乱码一区二区三区| 欧美精品一区二区蜜臀亚洲| 免费美女久久99| 日韩精品中文字幕在线不卡尤物| 蜜桃在线一区二区三区| 欧美日韩精品一区二区三区四区| 91视频免费看| 1区2区3区国产精品| 91香蕉视频污| 日韩精品三区四区| 欧美精品一区二区三| 国产成人丝袜美腿| 亚洲激情欧美激情| 欧美一级生活片| 国产成人一区二区精品非洲| 中文字幕 久热精品 视频在线| av成人动漫在线观看| 日韩精品电影在线观看| 欧美一区二区观看视频| 国产美女精品人人做人人爽| 最新日韩在线视频| 91精品婷婷国产综合久久| 国产精品正在播放| 亚洲一区在线电影| 久久嫩草精品久久久精品一| 色香蕉成人二区免费| 久久精工是国产品牌吗| 亚洲精品一二三区| 久久亚洲二区三区| 欧美日韩精品久久久| 大尺度一区二区| 精品综合免费视频观看| 一区二区视频免费在线观看| 久久久高清一区二区三区| 欧美亚男人的天堂| 99国产精品99久久久久久| 精品一区二区精品| 琪琪久久久久日韩精品| 亚洲妇熟xx妇色黄| 亚洲三级理论片| 亚洲欧洲色图综合| 国产精品国产三级国产| 国产视频不卡一区| 国产精品蜜臀在线观看| 国产偷v国产偷v亚洲高清| 精品国产伦一区二区三区免费| 日韩欧美一区中文| 日韩一级大片在线| 精品久久久久久久久久久久久久久 | 欧美欧美欧美欧美首页| 欧美美女网站色| 欧美一区二区大片| 日韩精品资源二区在线| 久久久亚洲高清| 中文字幕+乱码+中文字幕一区| 中文字幕欧美国产| 国产精品白丝在线| 亚洲一区二区三区精品在线| 石原莉奈一区二区三区在线观看| 亚洲香肠在线观看| 蜜桃一区二区三区四区| 成人丝袜高跟foot| 在线免费亚洲电影| 制服丝袜亚洲网站| 国产日韩欧美精品一区| 夜夜嗨av一区二区三区| 国产一区二区中文字幕| 91免费看片在线观看| 欧美成人精品高清在线播放| 国产精品伦理在线| 久久不见久久见免费视频7| 成人黄页毛片网站| 欧美一级夜夜爽| 亚洲午夜精品在线| 国产福利精品导航| 日韩午夜小视频| 亚洲国产一区二区三区青草影视| 国产福利一区二区三区| 欧美精品一卡两卡| 亚洲精品v日韩精品| 国产 欧美在线| 久久综合一区二区| 久久99精品国产.久久久久| 欧美丝袜丝nylons| 一区二区不卡在线视频 午夜欧美不卡在| 国产又粗又猛又爽又黄91精品| 欧美午夜精品久久久久久孕妇| 久久久精品人体av艺术| 蜜桃精品视频在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲二区在线视频| 欧美精品在线观看播放| 视频一区视频二区中文| 欧美精品一二三| 欧美成人video| 亚洲伊人色欲综合网| 色一区在线观看| 亚洲一区二区精品久久av| 欧美日韩在线综合| 日韩激情中文字幕| 2欧美一区二区三区在线观看视频| 国产一区二区三区免费播放| 精品久久一区二区| 成人美女在线视频| 一区二区三区蜜桃| 日韩精品专区在线影院重磅| 国产成人在线看| 伊人色综合久久天天| 精品国产伦一区二区三区观看体验 | 欧美一区二区福利在线| 国产成人在线色| 天天影视涩香欲综合网| 欧美精品一区二区三区高清aⅴ| 成人一级视频在线观看| 亚洲国产人成综合网站| 日韩美一区二区三区| 色偷偷久久一区二区三区| 美国毛片一区二区三区| 自拍偷拍亚洲欧美日韩| 欧美电影免费观看高清完整版在| 成人av在线影院| 青青草国产成人99久久| 有码一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 精品入口麻豆88视频| 欧美喷潮久久久xxxxx| 91官网在线观看| 成人app下载| 成人黄色小视频| 国内精品国产成人国产三级粉色| 亚洲成人综合在线| 亚洲免费毛片网站| 亚洲精品视频免费看| 亚洲丝袜另类动漫二区| 国产亚洲污的网站| www国产精品av| 精品免费99久久| 精品国产乱码久久久久久老虎 | 亚洲超丰满肉感bbw| 依依成人精品视频| 亚洲一区二区精品视频| 亚洲高清视频中文字幕| 亚洲一区二区高清| 日韩国产精品久久| 激情另类小说区图片区视频区| 三级一区在线视频先锋| 日韩电影在线免费看| 精一区二区三区| gogogo免费视频观看亚洲一| 91在线视频在线| 欧美色视频在线观看| 欧洲色大大久久| 日韩一区二区精品在线观看| 久久精品欧美日韩精品| 国产精品久久久久桃色tv| 亚洲人成网站在线| 日本不卡视频在线观看| 国产精品一区一区| 91香蕉视频在线| 精品sm在线观看| 亚洲精品国产品国语在线app| 午夜欧美大尺度福利影院在线看| 日本不卡123| 色婷婷国产精品久久包臀 | 男人的j进女人的j一区| 波多野结衣亚洲| 精品国产91九色蝌蚪| 亚洲国产精品一区二区www在线| 国产成人日日夜夜| 日韩欧美黄色影院|