站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

python實現(xiàn)爬取微博熱搜存入Mysql

python實現(xiàn)爬取微博熱搜存入Mysql

免費學(xué)習(xí)推薦:python視頻教程

python爬取微博熱搜存入Mysql

    • 最終的效果
    • 使用的庫
    • 目標(biāo)分析
    • 一:得到數(shù)據(jù)
    • 二:鏈接數(shù)據(jù)庫
    • 總代碼

最終的效果

廢話不多少,直接上圖
python實現(xiàn)爬取微博熱搜存入Mysql
這里可以清楚的看到,數(shù)據(jù)庫里包含了日期,內(nèi)容,和網(wǎng)站link
下面我們來分析怎么實現(xiàn)

使用的庫

import requests from selenium.webdriver import Chrome, ChromeOptions import time from sqlalchemy import create_engine import pandas as pd

目標(biāo)分析

這是微博熱搜的link:點我可以到目標(biāo)網(wǎng)頁
python實現(xiàn)爬取微博熱搜存入Mysql
首先我們使用selenium對目標(biāo)網(wǎng)頁進(jìn)行請求
然后我們使用xpath對網(wǎng)頁元素進(jìn)行定位,遍歷獲得所有數(shù)據(jù)
然后使用pandas生成一個Dataframe對像,直接存入數(shù)據(jù)庫

一:得到數(shù)據(jù)

python實現(xiàn)爬取微博熱搜存入Mysql
我們看到,使用xpath可以得到51條數(shù)據(jù),這就是各熱搜,從中我們可以拿到鏈接和標(biāo)題內(nèi)容

	all = browser.find_elements_by_xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[2]/a')  #得到所有數(shù)據(jù) 	context = [i.text for i in c]  # 得到標(biāo)題內(nèi)容     links = [i.get_attribute('href') for i in c]  # 得到link

然后我們再使用zip函數(shù),將date,context,links合并
zip函數(shù)是將幾個列表合成一個列表,并且按index對分列表的數(shù)據(jù)合并成一個元組,這個可以生產(chǎn)pandas對象。

dc = zip(dates, context, links)     pdf = pd.DataFrame(dc, columns=['date', 'hotsearch', 'link'])

其中date可以使用time模塊獲得

二:鏈接數(shù)據(jù)庫

這個很容易

enging = create_engine("mysql+pymysql://root:123456@localhost:3306/webo?charset=utf8") pdf.to_sql(name='infromation', con=enging, if_exists="append")

總代碼

from selenium.webdriver import Chrome, ChromeOptions import time from sqlalchemy import create_engine import pandas as pd   def get_data():     url = r"https://s.weibo.com/top/summary"  # 微博的地址     option = ChromeOptions()     option.add_argument('--headless')     option.add_argument("--no-sandbox")     browser = Chrome(options=option)     browser.get(url)     all = browser.find_elements_by_xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[2]/a')     context = [i.text for i in all]     links = [i.get_attribute('href') for i in all]     date = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime())     dates = []     for i in range(len(context)):         dates.append(date)     # print(len(dates),len(context),dates,context)     dc = zip(dates, context, links)     pdf = pd.DataFrame(dc, columns=['date', 'hotsearch', 'link'])     # pdf.to_sql(name=in, con=enging, if_exists="append")     return pdf   def w_mysql(pdf):     try:         enging = create_engine("mysql+pymysql://root:123456@localhost:3306/webo?charset=utf8")         pdf.to_sql(name='infromation', con=enging, if_exists="append")     except:         print('出錯了')   if __name__ == '__main__':     xx = get_data()     w_mysql(xx)

希望能夠幫到大家一點,大家一起共同進(jìn)步,共同成長!
祝大家新年快樂?。?!

相關(guān)免費學(xué)習(xí)推薦:python教程(視頻)

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
免费观看四虎精品成人| 国产精品青草久久| 久久精品美女视频| 99精品在线观看| 国产精品成人一区二区| 日韩电影中文字幕| 麻豆国产96在线日韩麻豆| 国产成人精品999在线| 国产美女精品视频免费观看| 日韩av无码国产精品| 精品久久久久成人码免费动漫| 久久精品国产免费观看三人同眠| 乱色精品无码一区二区国产盗| 国产精品扒开腿做爽爽爽视频| 亚洲精品成人片在线播放 | 国产办公室秘书无码精品99| 伊人久久综合精品无码AV专区| 在线私拍国产福利精品| 国产精品一级AV在线播放| 亚洲国产精品国产自在在线| 日韩精品一二三四区| 日本加勒比久久精品| 福利姬在线精品观看| 亚洲国产婷婷综合在线精品| 九九久久国产精品| 国产福利精品视频自拍| 500av导航大全精品| 精品一区二区三区免费观看| 久久无码精品一区二区三区| 99re久久精品国产首页2020| 一本色道久久88精品综合| 精品国产美女福利到在线不卡| 国产乱码精品一区二区三区中文| 在线精品无码字幕无码AV| 久久久久免费精品国产| 久久久久久国产精品三级| 99在线视频精品| 2021国产精品自产拍在线观看| 精品无码免费专区毛片| 在线日产精品一区| 大香视频伊人精品75|