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进阶教程之循环对象
Aug 30 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
Python3中关于cookie的创建与保存
Oct 21 Python
Python异常的检测和处理方法
Oct 26 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Flask框架模板渲染操作简单示例
Jul 31 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
python MD5加密的示例
Oct 19 Python
一文搞懂Python Sklearn库使用
Aug 23 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
django的ORM操作 增加和查询
2019/07/26 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
翻译专业应届生求职信
2013/11/23 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
房地产促销活动方案
2014/03/01 职场文书
档案保密承诺书
2014/06/03 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
2015年安全生产责任书
2015/01/30 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技