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 相关文章推荐
Windows下搭建python开发环境详细步骤
Jul 20 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
Python检测网络延迟的代码
May 15 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
python入门之基础语法学习笔记
Feb 08 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
对Keras自带Loss Function的深入研究
May 25 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
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
jquery插件开发之实现md5插件
2014/03/17 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
Python文件去除注释的方法
2015/05/25 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python 检查文件mime类型的方法
2018/12/08 Python
python3实现多线程聊天室
2018/12/12 Python
Python 移动光标位置的方法
2019/01/20 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
python文件读写代码实例
2019/10/21 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
个人求职信范文分享
2014/01/31 职场文书
2014年超市工作总结
2014/11/19 职场文书
公司捐书倡议书
2015/04/27 职场文书
董存瑞观后感
2015/06/11 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Redis的字符串是如何实现的
2021/10/24 Redis