微博作为大家经常使用的一个社交动态分享平台,当有上面新闻或者新鲜事发生时都有可能会在微博热搜上出现 。而有些学习了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如何用爬虫抓取微博热搜”的全部内容了,希望对你有所帮助 。
推荐阅读
- python中函数的参数是什么?python中函数参数知识点讲解
- Python怎么实现高斯滤波处理图片?Python高斯滤波用什么方法
- python中元组与列表之间有什么区别?python元组与列表之间不同点
- 如何用notepad++运行Python?Python文件在notepad++中怎么快捷运行
- Python文件的读写要用什么方法?Python如何同时读写文件
- python如何绘制曲线图?python绘制曲线图的方法
- python中axes类有什么成员函数?python中axes类常用成员函数讲解
- Python文件打开闪退为什么?打开Python文件就闪退怎么办
- Python文件路径怎么写?Python中如何去写正确的文件路径
- Python机器学习的研究方向有哪些?Python机器学习有什么开发方向