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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
python对数组进行反转的方法
May 20 Python
Scrapy的简单使用教程
Oct 24 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
Sanic框架应用部署方法详解
Jul 18 Python
python实现泊松图像融合
Jul 26 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
Python将字符串常量转化为变量方法总结
Mar 17 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 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 utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
什么是GWT的Entry Point
2013/08/16 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
实习生自荐信范文分享
2013/11/27 职场文书
项目专员岗位职责
2013/12/04 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
担保书格式及范文
2014/04/01 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
基层党支部整改方案
2014/10/25 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Nginx反向代理、重定向
2022/04/13 Servers