日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:237日期:2022-06-14 16:42:15
目錄github源碼地址:各類圖表的實(shí)現(xiàn)效果爬取的說(shuō)說(shuō)內(nèi)容個(gè)性化說(shuō)說(shuō)內(nèi)容詞云圖每年發(fā)表說(shuō)說(shuō)總數(shù)柱狀圖、每年點(diǎn)贊和評(píng)論折線圖7天好友動(dòng)態(tài)柱狀圖、餅圖使用方法主要代碼github源碼地址:

https://github.com/kuishou68/python

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

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

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

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

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

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

每年發(fā)表說(shuō)說(shuō)總數(shù)柱狀圖、每年點(diǎn)贊和評(píng)論折線圖

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

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

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

使用方法

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

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

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

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

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

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

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

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

主要代碼

qq空間txt.py

import timefrom selenium import webdriverfrom lxml import etree# 這里一定要設(shè)置編碼格式,防止后面寫入文件時(shí)報(bào)錯(cuò)friend = ’1569339843’ # 朋友的QQ號(hào),朋友的空間要求允許你能訪問(wèn)user = ’783533896’ # 你的QQ號(hào)pw = ’1323mkoNJI.@’ # 你的QQ密碼# 獲取瀏覽器驅(qū)動(dòng)chrome_driver = ’chromedriver.exe’driver = webdriver.Chrome(executable_path=chrome_driver)# 瀏覽器窗口最大化driver.maximize_window()# 瀏覽器地址定向?yàn)閝q登陸頁(yè)面driver.get('http://i.qq.com')# 所以這里需要選中一下frame,否則找不到下面需要的網(wǎng)頁(yè)元素driver.switch_to.frame('login_frame')time.sleep(3)# 自動(dòng)點(diǎn)擊賬號(hào)登陸方式driver.find_element_by_id('switcher_plogin').click()time.sleep(3)# 賬號(hào)輸入框輸入已知qq賬號(hào)driver.find_element_by_id('u').send_keys(user)time.sleep(5)# 密碼框輸入已知密碼driver.find_element_by_id('p').send_keys(pw)time.sleep(5)# 自動(dòng)點(diǎn)擊登陸按鈕driver.find_element_by_id('login_button').click()time.sleep(5)# 讓webdriver操縱當(dāng)前頁(yè)driver.switch_to.default_content()time.sleep(5)# 跳到說(shuō)說(shuō)的url, friend你可以任意改成你想訪問(wèn)的空間driver.get('http://user.qzone.qq.com/' + friend + '/311')time.sleep(5)next_num = 0 # 初始“下一頁(yè)”的idwhile True: # 下拉滾動(dòng)條,使瀏覽器加載出動(dòng)態(tài)加載的內(nèi)容, # 我這里是從1開(kāi)始到6結(jié)束 分5 次加載完每頁(yè)數(shù)據(jù) for i in range(1, 6):height = 20000 * i # 每次滑動(dòng)20000像素strWord = 'window.scrollBy(0,' + str(height) + ')'driver.execute_script(strWord)time.sleep(4) # 很多時(shí)候網(wǎng)頁(yè)由多個(gè)<frame>或<iframe>組成,webdriver默認(rèn)定位的是最外層的frame, # 所以這里需要選中一下說(shuō)說(shuō)所在的frame,否則找不到下面需要的網(wǎng)頁(yè)元素 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)到了尾頁(yè),“下一頁(yè)”這個(gè)按鈕就沒(méi)有id了,可以結(jié)束了 if driver.page_source.find(’pager_next_’ + str(next_num)) == -1:break # 找到“下一頁(yè)”的按鈕,因?yàn)橄乱豁?yè)的按鈕是動(dòng)態(tài)變化的,這里需要?jiǎng)討B(tài)記錄一下 driver.find_element_by_id(’pager_next_’ + str(next_num)).click() # “下一頁(yè)”的id next_num += 1 # 因?yàn)樵谙乱粋€(gè)循環(huán)里首先還要把頁(yè)面下拉,所以要跳到外層的frame上 driver.switch_to.parent_frame()# 關(guān)閉瀏覽器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’) # 默認(rèn)讀取sheet=0 Pandas DataFrame’def getTimeStr(row): item = row[’時(shí)間’] if pd.isnull(item) | pd.isna(item):return data = item.split(’年’)[0] return data# 按年統(tǒng)計(jì)說(shuō)說(shuō)數(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)計(jì)說(shuō)說(shuō)點(diǎn)贊數(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)計(jì)說(shuō)說(shuō)評(píng)論數(shù)def readComment(result, row): item = row[’評(píng)論’] 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]# 統(tǒng)計(jì)每年發(fā)表說(shuō)說(shuō)次數(shù)柱狀圖def paintBar(): count = readExcel(df_excel).get(’count’) # V1 版本開(kāi)始支持鏈?zhǔn)秸{(diào)用 data = getKeyAndVal(’count’) print(data[0]) d = (Bar() .add_xaxis(data[0]) .add_yaxis('每年發(fā)表說(shuō)說(shuō)總數(shù)', data[1]) .render('每年發(fā)表說(shuō)說(shuō)總數(shù)柱狀圖.html') )paintBar()# 統(tǒng)計(jì)點(diǎn)贊和評(pí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('每年評(píng)論數(shù)', y_axis=commentValue) .add_yaxis('每年點(diǎn)贊數(shù)', y_axis=thumbValue) .render('每年點(diǎn)贊和評(píng)論折現(xiàn)圖.html') # 輸出圖形 )paintLine()

其他代碼自行下載項(xiàng)目查看

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

標(biāo)簽: qq Python 編程語(yǔ)言
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产模特精品视频久久久久| 亚洲综合福利| 精品亚洲二区| 国产精品色网| 91欧美国产| 日韩成人午夜精品| 久久男女视频| 国产精品久久乐| 激情久久五月| 欧美日韩国产免费观看| 蜜桃精品在线| 欧美.日韩.国产.一区.二区| 免费在线欧美视频| 欧美精品国产| 久久青草久久| 综合五月婷婷| se01亚洲视频 | 91高清一区| 亚洲一区二区免费看| 日韩av一级片| 超碰在线99| 免费人成在线不卡| 国产精品一线| 久久精品播放| 国产毛片精品| 欧美亚洲国产一区| 四虎在线精品| 99成人在线视频| 国产色噜噜噜91在线精品| 久久久五月天| 老牛国内精品亚洲成av人片| 夜夜嗨av一区二区三区网站四季av| 欧美精品不卡| 中文字幕av一区二区三区人| 国产亚洲一区二区手机在线观看| 中文字幕成人| 国产一区导航| 亚洲国产欧美日本视频| 91麻豆精品| 亚洲精选av| 蜜芽一区二区三区| 不卡在线一区| 欧洲av一区二区| 精品亚洲成人| 国产欧美一区二区精品久久久 | 久久久久美女| 美女在线视频一区| 91成人在线网站| 蜜臀a∨国产成人精品| 亚洲手机视频| 99久久久久国产精品| 亚洲一区资源| www.51av欧美视频| 成人日韩av| 91视频久久| www在线观看黄色| 久久久久久黄| 欧美日韩一二三四| 99精品综合| 亚洲综合另类| 日韩三级一区| 亚洲精品进入| 91精品麻豆| 日韩av一二三| 国产精品色在线网站| 欧美xxxx性| 日韩精品dvd| 99精品视频在线| 免费日韩av| 日韩av一级片| 国产精品sss在线观看av| 黄色网一区二区| 99久久精品网| 日韩精品一级中文字幕精品视频免费观看| 亚洲免费黄色| 国产欧美另类| 精品久久99| 日韩午夜精品| 精品国产亚洲一区二区在线观看| 国产精品99在线观看| 欧美中文一区| 久久精品一区二区国产| 国产aⅴ精品一区二区四区| 欧美日韩午夜电影网| 91久久中文| 国产福利资源一区| 正在播放日韩精品| 欧洲亚洲一区二区三区| 91亚洲国产高清| 激情综合自拍| 午夜在线精品偷拍| 婷婷精品在线| 伊人精品一区| 欧美在线黄色| 久久久精品网| 国产极品久久久久久久久波多结野| 久久wwww| 欧美日韩免费看片| 伊人久久一区| 三上亚洲一区二区| 亚洲日本在线观看视频| 精品国产亚洲一区二区三区| aⅴ色国产欧美| 久久av免费| 黄色日韩在线| 鲁大师精品99久久久| 久久影视三级福利片| 九九综合九九| 中文在线免费视频| 亚久久调教视频| 欧美~级网站不卡| 日韩美女国产精品| 四虎成人av| 性色一区二区| 日韩欧美一区二区三区在线视频| 国产欧美一级| 亚洲精品婷婷| 在线精品福利| 欧美sss在线视频| 日韩不卡一区二区三区| 欧美成人基地| 欧美国产日韩电影| 亚洲一级特黄| 伊人久久国产| 国产精品成人a在线观看| 精品日产乱码久久久久久仙踪林| 日韩精品中文字幕一区二区| 中文一区一区三区免费在线观 | 国产精品s色| 日本成人在线不卡视频| 蜜桃精品在线| 97人人精品| 国产精品videossex久久发布| 午夜在线精品偷拍| 偷拍欧美精品| 一区二区亚洲精品| 视频一区欧美精品| 国产农村妇女精品一区二区| 视频一区二区不卡| 一区在线视频观看| 日韩午夜电影| 婷婷成人av| 亚洲国产福利| 亚洲综合另类| 国产精品一区二区99| 中文字幕一区二区三区在线视频| 欧美日一区二区| 日韩专区一卡二卡| 在线午夜精品| 亚洲一区二区日韩| 欧美专区在线| 久久国产精品色av免费看| 日本视频一区二区| 国产精品伊人| 久久人人精品| 黄色成人91| 免费一级欧美片在线观看网站| zzzwww在线看片免费| 午夜久久影院| 蜜桃av一区二区三区电影| 欧美黑人巨大videos精品| 日本精品影院| 国产日韩三级| 久久免费黄色| 国产精品一区二区精品视频观看| 1000部精品久久久久久久久| 国产精品天天看天天狠| 激情久久中文字幕| 精品久久久久久久| 伊人精品一区| 国产精品天天看天天狠| 涩涩涩久久久成人精品| 成人午夜精品| 国产精品久久久久9999高清| 夜夜嗨一区二区| 国产精品一级| 久久福利影视| 欧美日韩尤物久久| 久久99精品久久久久久园产越南| 亚洲在线观看| 欧美a级一区| 蜜桃久久久久| 日本va欧美va瓶| 亚洲精品成人一区| aa国产精品| 成人av二区| 九九在线精品| 亚洲影院天堂中文av色| 亚洲午夜黄色| 日韩成人a**站| 日韩高清一区在线| 国产视频一区在线观看一区免费| 国产成人精品一区二区三区视频| 日韩国产在线观看| 日韩综合一区二区| 最新国产精品视频| 国产精品一区高清| 国产乱子精品一区二区在线观看 | 精品日韩一区| 午夜久久免费观看|