成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:184日期:2022-06-14 16:42:15
目錄github源碼地址:各類圖表的實現效果爬取的說說內容個性化說說內容詞云圖每年發表說說總數柱狀圖、每年點贊和評論折線圖7天好友動態柱狀圖、餅圖使用方法主要代碼github源碼地址:

https://github.com/kuishou68/python

各類圖表的實現效果

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 爬取QQ空間的資料請關注好吧啦網其它相關文章!

標簽: qq Python 編程語言
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩精品成人一区二区三区| 麻豆精品视频在线| 波多野结衣欧美| 欧美电影免费观看高清完整版在 | 一区二区三区国产精华| 日韩亚洲欧美一区二区三区| 国产午夜精品美女毛片视频| 性欧美长视频| 国产资源在线一区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日韩精品一区二区三区三区免费 | www国产亚洲精品久久麻豆| 日本不卡一二三区黄网| 一本色道久久综合亚洲精品婷婷 | 老司机午夜精品99久久| 色综合久久久久久久| 亚洲另类在线视频| 成人动漫一区二区在线| 国产精品不卡在线观看| 久久综合图片| 91在线码无精品| 一区二区高清免费观看影视大全 | 亚洲成人一区在线| 在线成人高清不卡| 欧美视频精品在线| 久久久久久一区| 91黄视频在线观看| 免费在线观看一区二区| 国产精品五区| 午夜在线a亚洲v天堂网2018| 欧美承认网站| 色综合色狠狠天天综合色| 另类调教123区| 丝袜亚洲另类欧美| 精品国产一区二区三区四区四| 久久久综合香蕉尹人综合网| 92精品国产成人观看免费| 亚洲大胆女人| 国产欧美一区二区精品久导航| 好吊视频一区二区三区四区 | 亚洲综合色婷婷| 91久久一区二区| 欧美另类一区| 亚洲不卡一区二区三区| 欧美中文字幕一区二区三区| av电影在线观看一区| 99视频精品免费视频| 欧美 日韩 国产 一区| 不卡一二三区首页| 国产一区二区三区香蕉| 午夜精品福利一区二区三区蜜桃| 5566中文字幕一区二区电影| 亚洲看片网站| 国产成+人+日韩+欧美+亚洲| 婷婷综合五月天| 日本一区二区在线不卡| 91精品午夜视频| 国产精品系列在线| 亚洲gay无套男同| 亚洲国产日韩av| 精品影院一区二区久久久| av电影在线观看完整版一区二区| 亚洲激情黄色| 亚洲国产精品久久久久婷婷老年| 欧美午夜一区| 亚洲高清精品中出| 久久精品日产第一区二区三区| 亚洲精品男同| 欧美综合国产| 国产精品制服诱惑| 欧美日韩在线精品| 成人视屏免费看| 人人精品人人爱| 亚洲综合一区二区精品导航| 久久久久九九视频| 一区二区三区在线不卡| 美国欧美日韩国产在线播放 | 成人免费视频视频| 麻豆传媒一区二区三区| 4438x成人网最大色成网站| 色狠狠av一区二区三区| 麻豆精品视频| 国产精品免费看| 欧美日韩网址| 国产一区三区三区| 捆绑变态av一区二区三区| 欧美在线精品一区| 亚洲欧美日韩精品一区二区| 91久久夜色精品国产九色| 一本久久综合| 欧美午夜片在线看| 久久一区二区三区四区五区| 亚洲欧美日韩另类精品一区二区三区 | 蜜桃一区二区三区在线观看| 国产老妇另类xxxxx| 99久久综合99久久综合网站| 久久久久久九九九九| 欧美一卡二卡在线| 欧美日韩精品久久久| 在线精品视频小说1| 欧美日韩一区二区不卡| 欧美精品 国产精品| 日韩成人一区二区| 久久久久久网| 亚洲一区二区av在线| 91亚洲大成网污www| 精品视频在线视频| 国产精品免费久久| 一区二区三区四区不卡视频| 男人的j进女人的j一区| 久草这里只有精品视频| 99视频精品在线| eeuss鲁片一区二区三区在线看| av电影天堂一区二区在线 | 免费成人在线视频观看| 91久久综合| 国产肉丝袜一区二区| 亚洲精品在线网站| 国产精品1区二区.| 欧美喷潮久久久xxxxx| 国产精品沙发午睡系列990531| 国产91丝袜在线观看| 欧美日韩在线三级| 亚洲一区二区三区四区五区黄 | 亚洲欧美一区二区原创| 麻豆成人久久精品二区三区小说| 婷婷丁香久久五月婷婷| 国产精品视频一二三区| 日韩一区二区在线观看视频| 欧美一区二区视频在线观看2022| 福利一区福利二区| 97久久人人超碰| 欧美福利电影在线观看| 午夜精品美女久久久久av福利| 女女同性女同一区二区三区91| 亚洲福利一区| 91精品国产91久久久久久一区二区| 亚洲婷婷国产精品电影人久久| 蜜臀国产一区二区三区在线播放| 成人深夜视频在线观看| 亚洲人成人一区二区三区| 欧美日韩aaaaa| 久久精品国产一区二区| 99在线精品视频在线观看| 亚洲高清不卡在线| 亚洲综合激情另类小说区| 亚洲一区二区三区中文字幕在线| 久久精品国内一区二区三区| 国产一区久久| 久久久久久免费网| 国产一区二区在线看| 国产精品家庭影院| av中文字幕不卡| 日韩精品一区二| 老司机免费视频一区二区三区| 欧美嫩在线观看| 一区二区三区免费| 欧美区亚洲区| 久久青草国产手机看片福利盒子| 99综合影院在线| 久久久777精品电影网影网| 不卡区在线中文字幕| 色婷婷av一区二区三区软件| 亚洲美女免费视频| 五月激情综合网| 欧美喷水视频| 亚洲精品在线一区二区| 香蕉影视欧美成人| 色哟哟一区二区| 国产精品区一区二区三| 国内精品久久久久久久97牛牛 | 亚洲少妇屁股交4| 激情欧美亚洲| 国产成人欧美日韩在线电影| 色狠狠色狠狠综合| 国产成人午夜片在线观看高清观看| 欧美精品1区2区3区| 欧美国产综合| 亚洲激情自拍偷拍| 亚洲天堂偷拍| ...xxx性欧美| 国产精品亚洲综合久久| 国产精品一区在线观看你懂的| 亚洲精品人人| 国产日韩欧美综合在线| 成人a级免费电影| 国产片一区二区| 日韩午夜在线| 亚洲人吸女人奶水| 99精品福利视频| 午夜免费欧美电影| 欧洲一区在线电影| 欧美在线播放一区| 欧美精品久久久久久久多人混战| 图片区小说区区亚洲影院| 欧美精品乱码久久久久久按摩 | 久久激情中文| 99精品在线免费| 亚洲婷婷在线视频| 一区二区视频在线观看|