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 相关文章推荐
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python中Threading用法详解
Dec 27 Python
Python3 中文文件读写方法
Jan 23 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
opencv实现简单人脸识别
Feb 19 Python
python with (as)语句实例详解
Feb 04 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
如何解决.cuda()加载用时很长的问题
May 24 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
PHP中用hash实现的数组
2011/07/17 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python request设置HTTPS代理代码解析
2018/02/12 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
总结python中pass的作用
2019/02/27 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
求职简历自荐信
2013/10/20 职场文书
后勤岗位职责
2013/11/26 职场文书
会议通知范文
2015/04/15 职场文书
保留意见审计报告
2015/06/05 职场文书
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server