python+selenium爬取微博热搜存入Mysql的实现方法


Posted in Python onJanuary 27, 2021

最终的效果

废话不多少,直接上图

python+selenium爬取微博热搜存入Mysql的实现方法

这里可以清楚的看到,数据库里包含了日期,内容,和网站link
下面我们来分析怎么实现

使用的库

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

目标分析

这是微博热搜的link:点我可以到目标网页

python+selenium爬取微博热搜存入Mysql的实现方法

首先我们使用selenium对目标网页进行请求
然后我们使用xpath对网页元素进行定位,遍历获得所有数据
然后使用pandas生成一个Dataframe对像,直接存入数据库

一:得到数据

python+selenium爬取微博热搜存入Mysql的实现方法

我们看到,使用xpath可以得到51条数据,这就是各热搜,从中我们可以拿到链接和标题内容

all = browser.find_elements_by_xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[2]/a') #得到所有数据
	context = [i.text for i in c] # 得到标题内容
  links = [i.get_attribute('href') for i in c] # 得到link

然后我们再使用zip函数,将date,context,links合并
zip函数是将几个列表合成一个列表,并且按index对分列表的数据合并成一个元组,这个可以生产pandas对象。

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

其中date可以使用time模块获得

二:链接数据库

这个很容易

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)

到此这篇关于python+selenium爬取微博热搜存入Mysql的实现方法的文章就介绍到这了,更多相关python selenium爬取微博热搜存入Mysql内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python删除空文件和空文件夹的方法
Jul 14 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python单例模式的应用场景实例讲解
Feb 24 Python
python绘制汉诺塔
Mar 01 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 #Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 #Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 #Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 #Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 #Python
python re.match()用法相关示例
Jan 27 #Python
selenium+python实现基本自动化测试的示例代码
Jan 27 #Python
You might like
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
20个最新的jQuery插件
2012/01/13 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
深入理解js promise chain
2016/05/05 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
Vuex提升学习篇
2018/01/11 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
2019/03/04 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
Python实现从订阅源下载图片的方法
2015/03/11 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Django中使用Celery的方法示例
2018/11/29 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python支付宝支付示例详解
2019/08/22 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
常务副总经理岗位职责
2014/04/12 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
大学生简短的自我评价
2014/09/12 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技