婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

python爬取網(wǎng)頁版QQ空間,生成各類圖表

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

github源碼地址:

https://github.com/kuishou68/python

各類圖表的實現(xiàn)效果

爬取的說說內(nèi)容

個性化說說內(nèi)容詞云圖

每年發(fā)表說說總數(shù)柱狀圖、每年點贊和評論折線圖

7天好友動態(tài)柱狀圖、餅圖

使用方法

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

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

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

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

# 這里一定要設(shè)置編碼格式,防止后面寫入文件時報錯

friend = '1569339843'  # 朋友的QQ號,朋友的空間要求允許你能訪問
user = '783533896'  # 你的QQ號
pw = '1323mkoNJI.@'  # 你的QQ密碼

# 獲取瀏覽器驅(qū)動
chrome_driver = 'chromedriver.exe'
driver = webdriver.Chrome(executable_path=chrome_driver)

# 瀏覽器窗口最大化
driver.maximize_window()

# 瀏覽器地址定向為qq登陸頁面
driver.get("http://i.qq.com")

# 所以這里需要選中一下frame,否則找不到下面需要的網(wǎng)頁元素
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操縱當(dāng)前頁
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:
    # 下拉滾動條,使瀏覽器加載出動態(tài)加載的內(nèi)容,
    # 我這里是從1開始到6結(jié)束 分5 次加載完每頁數(shù)據(jù)
    for i in range(1, 6):
        height = 20000 * i  # 每次滑動20000像素
        strWord = "window.scrollBy(0," + str(height) + ")"
        driver.execute_script(strWord)
        time.sleep(4)

    # 很多時候網(wǎng)頁由多個frame>或iframe>組成,webdriver默認(rèn)定位的是最外層的frame,
    # 所以這里需要選中一下說說所在的frame,否則找不到下面需要的網(wǎng)頁元素
    driver.switch_to.frame("app_canvas_frame")
    selector = etree.HTML(driver.page_source)
    divs = selector.xpath('//*[@id="msgList"]/li/div[3]')

    # 這里使用 a 表示內(nèi)容可以連續(xù)不清空寫入
    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")

    # 當(dāng)已經(jīng)到了尾頁,“下一頁”這個按鈕就沒有id了,可以結(jié)束了
    if driver.page_source.find('pager_next_' + str(next_num)) == -1:
        break

    # 找到“下一頁”的按鈕,因為下一頁的按鈕是動態(tài)變化的,這里需要動態(tài)記錄一下
    driver.find_element_by_id('pager_next_' + str(next_num)).click()

    # “下一頁”的id
    next_num += 1

    # 因為在下一個循環(huán)里首先還要把頁面下拉,所以要跳到外層的frame上
    driver.switch_to.parent_frame()

# 關(guān)閉瀏覽器
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')  # 默認(rèn)讀取sheet=0 Pandas DataFrame'

def getTimeStr(row):
    item = row['時間']
    if pd.isnull(item) | pd.isna(item):
        return

    data = item.split('年')[0]
    return data

# 按年統(tǒng)計說說數(shù)量
def readCount(result, row):
    timeData = getTimeStr(row)
    if timeData == None: return
    if timeData in result.keys():
        result[timeData] += 1
    else:
        result[timeData] = 1

# 按年統(tǒng)計說說點贊數(shù)
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)

# 按年統(tǒng)計說說評論數(shù)
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]

# 統(tǒng)計每年發(fā)表說說次數(shù)柱狀圖
def paintBar():
    count = readExcel(df_excel).get('count')
    # V1 版本開始支持鏈?zhǔn)秸{(diào)用
    data = getKeyAndVal('count')
    print(data[0])
    d = (
        Bar()
            .add_xaxis(data[0])
            .add_yaxis("每年發(fā)表說說總數(shù)", data[1])
            .render("每年發(fā)表說說總數(shù)柱狀圖.html")
    )
paintBar()

# 統(tǒng)計點贊和評論折線圖
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("每年評論數(shù)", y_axis=commentValue)
            .add_yaxis("每年點贊數(shù)", y_axis=thumbValue)
            .render("每年點贊和評論折現(xiàn)圖.html")  # 輸出圖形
    )
paintLine()

其他代碼自行下載項目查看

以上就是python爬取網(wǎng)頁版QQ空間,生成各類圖表的詳細(xì)內(nèi)容,更多關(guān)于python 爬取QQ空間的資料請關(guān)注腳本之家其它相關(guān)文章!

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python爬取網(wǎng)頁版QQ空間,生成各類圖表》,本文關(guān)鍵詞  python,爬取,網(wǎng)頁,版,空間,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python爬取網(wǎng)頁版QQ空間,生成各類圖表》相關(guān)的同類信息!
  • 本頁收集關(guān)于python爬取網(wǎng)頁版QQ空間,生成各類圖表的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美一区二区三级| 日韩制服丝袜先锋影音| 91成人免费网站| 欧美专区日韩专区| 666欧美在线视频| 亚洲国产精品精华液ab| 久久99精品久久久| 色婷婷狠狠综合| 欧美不卡激情三级在线观看| 日本国产一区二区| 亚洲精品一区二区三区99| 亚洲国产日韩a在线播放性色| 国内精品伊人久久久久av一坑| 91久久精品午夜一区二区| 久久久亚洲精华液精华液精华液| 日本va欧美va精品| 色老汉av一区二区三区| ㊣最新国产の精品bt伙计久久| 国内欧美视频一区二区| 中文字幕二三区不卡| 亚洲欧美另类图片小说| 成人网页在线观看| 国产精品久久一卡二卡| 成人免费视频app| 亚洲综合视频在线| 欧美日韩国产一级| 青草国产精品久久久久久| 精品乱人伦小说| 91色乱码一区二区三区| 亚洲成在线观看| 亚洲成人av免费| 欧美激情在线免费观看| 在线观看视频欧美| 狠狠色狠狠色综合| 亚洲激情六月丁香| 精品久久人人做人人爱| www.在线成人| 久久69国产一区二区蜜臀| 最新成人av在线| 久久久久久**毛片大全| 欧美一区二区三区播放老司机| 国产成人在线免费观看| 免费成人在线播放| 天堂va蜜桃一区二区三区| 国产丝袜欧美中文另类| 日韩视频在线一区二区| 欧美另类z0zxhd电影| av电影在线观看完整版一区二区| 免费人成精品欧美精品| 亚洲综合丁香婷婷六月香| 亚洲柠檬福利资源导航| 中文字幕一区二区视频| 国产精品国产三级国产aⅴ中文| 亚洲精品一区二区三区影院| 精久久久久久久久久久| 国产女人aaa级久久久级| 欧美激情艳妇裸体舞| 国产农村妇女毛片精品久久麻豆| 国产精品污www在线观看| 亚洲日本电影在线| 美女视频免费一区| 成人网男人的天堂| 日韩三级在线观看| 一区二区三区四区在线| 国产一区二区视频在线播放| 欧美亚男人的天堂| 国产精品乱码妇女bbbb| 蜜臀av一区二区在线免费观看 | 中文字幕人成不卡一区| 午夜伊人狠狠久久| 亚洲一二三四在线| 亚洲成a人片综合在线| 免费久久精品视频| 91丝袜高跟美女视频| 久久精品72免费观看| 亚洲国产精品自拍| 首页亚洲欧美制服丝腿| 99国产欧美久久久精品| 国产精品一区二区免费不卡| 日日摸夜夜添夜夜添精品视频| 最近中文字幕一区二区三区| 国产丝袜欧美中文另类| 一本色道久久加勒比精品| 国产三级欧美三级日产三级99| 欧美一级片在线观看| 26uuu亚洲婷婷狠狠天堂| 精品88久久久久88久久久| 久久精品亚洲国产奇米99| 国产精品久久久久久户外露出| 国产精品久久久久7777按摩 | 蜜臀久久99精品久久久久久9| 欧美日韩国产美| 日韩1区2区3区| 不卡的av网站| 日韩欧美国产三级电影视频| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲色图一区二区| 日韩美女精品在线| 成人教育av在线| 国产成人免费网站| 国产精品乱码一区二三区小蝌蚪| 精品国精品自拍自在线| 中文字幕综合网| 日韩主播视频在线| 2023国产精华国产精品| 在线视频亚洲一区| 国产欧美一区二区精品久导航 | 在线免费观看成人短视频| 成人久久18免费网站麻豆| 国产成人亚洲综合a∨婷婷图片| 日本一区二区三区高清不卡| 天天操天天干天天综合网| 国产aⅴ综合色| 日本一区二区三区国色天香| 久久电影网站中文字幕| 亚洲欧美另类久久久精品2019| av一区二区三区在线| 国产精品素人视频| 日韩精品综合一本久道在线视频| 国产精品色哟哟| 高清不卡在线观看| 亚洲免费在线看| 69堂成人精品免费视频| 欧美一区二区久久| 7777精品伊人久久久大香线蕉的 | 亚洲欧洲日产国产综合网| 一级中文字幕一区二区| 91福利在线观看| 亚洲精品视频自拍| 午夜日韩在线观看| www国产精品av| 色综合 综合色| 国产呦萝稀缺另类资源| 亚洲激情自拍视频| 日韩 欧美一区二区三区| 国产欧美一区二区精品性色 | 国产精品二区一区二区aⅴ污介绍| 亚洲一区成人在线| 国产成a人亚洲精| 一区二区在线看| 337p日本欧洲亚洲大胆精品| 99视频在线精品| 日本午夜精品视频在线观看| 久久亚洲综合色一区二区三区 | 免费在线观看日韩欧美| 狠狠色综合日日| 国产精品久久久久久亚洲伦 | 国产精品久久三区| 91丝袜美腿高跟国产极品老师 | 欧美日高清视频| 精品国产免费人成在线观看| 99久久精品99国产精品| 国产在线精品一区二区夜色| 欧美国产日韩精品免费观看| 成人午夜在线播放| 亚洲国产精品成人久久综合一区| 亚洲国产日韩精品| 亚洲电影视频在线| 亚洲电影在线播放| 日韩高清在线观看| 日本成人在线不卡视频| 日本一不卡视频| 日韩电影在线一区二区| 亚洲午夜在线电影| 免费视频最近日韩| 韩国成人精品a∨在线观看| 国产精品88888| 亚洲欧美日韩一区二区三区在线观看| 久久久99精品免费观看不卡| 国产精品三级av在线播放| 亚洲第一综合色| 一本在线高清不卡dvd| 亚洲h精品动漫在线观看| 国产一区二区精品久久| 色综合久久综合网97色综合| 欧美一区二区视频在线观看2022| 蜜臀99久久精品久久久久久软件| 欧美福利视频导航| 久久久精品蜜桃| 日本中文字幕一区二区视频 | 亚洲一级在线观看| 久久综合资源网| 夜夜精品视频一区二区| 美女国产一区二区三区| 日本道色综合久久| 日本成人在线看| a亚洲天堂av| 久久影视一区二区| 国产色91在线| 免费看日韩精品| 欧美日韩第一区日日骚| 99精品欧美一区二区三区综合在线| 91啪九色porn原创视频在线观看| 蜜臀精品久久久久久蜜臀| 欧美狂野另类xxxxoooo| 亚洲国产中文字幕在线视频综合 | 99久久精品情趣| 92国产精品观看| 一区二区三区精品久久久| 欧美四级电影网|