Python爬取微博热搜代码怎么写?Python如何用爬虫抓取微博热搜

微博作为大家经常使用的一个社交动态分享平台,当有上面新闻或者新鲜事发生时都有可能会在微博热搜上出现 。而有些学习了python爬虫的小伙伴就想知道微博热搜榜如何抓取,那么下面就以实际代码示例来给大家一步步讲解一下python爬虫抓取微博热搜的代码编写教程 。

Python爬取微博热搜代码怎么写?Python如何用爬虫抓取微博热搜

文章插图
1.那么首先就是要导入辅助开发的模块了,总共就是只有四个 。分别就是操作浏览器的模块、处理热搜时间的模块,将数据保存在数据库中的模块、以及处理数据的模块,代码如下:
from selenium.webdriver import Chrome, ChromeOptionsimport timefrom sqlalchemy import create_engineimport pandas as pd2.那么爬虫第一步就是要去访问网站并且建立请求,那么微博热搜的网页地址大家可以自己去在浏览器进入后复制 。而python爬虫会将整个网站的源码全部抓取回来,但是这样就不是很好处理 。
【Python爬取微博热搜代码怎么写?Python如何用爬虫抓取微博热搜】所以这里的话就是通过操作浏览器的dom对象来获取微博热搜50条数据的信息,dom对象实际上表现的就是html标签,通过在浏览器上按F12就可以查看,代码如下:
def get_data():    url = r"https://weibo.com/newlogin?tabtype=search&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F"    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]3.以上的代码就是将微博热搜榜上面的热搜标题以及时间和url链接都给抓取回来了,那么现在要做的就是先将时间进行格式化处理 。然后通过zip函数将它们放在同一个对象之中方便进行保存,接着上面的函数写,代码如下:
date = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime())    dates = []    for i in range(len(context)):        dates.append(date)    dc = zip(dates, context, links)    pdf = pd.DataFrame(dc, columns=['date', 'hotsearch', 'link'])    return pdf4.那么得到数据之后只需要将其保存到数据库就好了,现在编写一个保存数据到mysql数据库的函数,关键就在于连接属性参数的编写 。按照自己的数据修改即可,示例如下:
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('报错')5.最后只需要调用这两个函数就可以了,代码如下:
if __name__ == '__main__':    xx = get_data()    w_mysql(xx)以上就是关于“Python爬取微博热搜代码怎么写?Python如何用爬虫抓取微博热搜”的全部内容了,希望对你有所帮助 。

推荐阅读