本文章通过两种保存模式:csv文件、Mysql数据库

目录

一、导入的模块

二、请求数据及发送数据

三、解析数据

四、提取数据

五、保存数据

六、代码补充


实现效果如图:

Mysql数据库

一、导入的模块

# 请求模块
import requests
# 数据解析模块
import parsel
# csv模块
import csv
# 解析xpath数据
from lxml import etree
# Mysql数据库
from pymysql import *
# 获取当前时间
import datetime

二、请求数据及发送数据

抓取到这个包后要提取出cookie及user_agent.

# 请求网址
url = 'https://s.weibo.com/top/summary?cate=realtimehot'
# 请求头伪装
headers = {# 用户信息,常用于检测是否有登陆账号'cookie': 'SINAGLOBAL=7937404926931.249.1636464635344; UM_distinctid=17f2703fd68a04-0bab97066d76a7-b7a1b38-144000-17f2703fd69b9a; _s_tentry=www.google.com; Apache=7622137159879.738.1658974841979; ULV=1658974841984:18:1:1:7622137159879.738.1658974841979:1654582588849; login_sid_t=202fe80fe56d14cc0f16efb902e5ea28; cross_origin_proto=SSL; SCF=AkDb37fbylKlxUz0nDM7_r_svEEQmTEpkUnvdkGWHpo07aipJQEMqhirljndvz5wo6lbLvXIeS2eK0Tz2hjlqm4.; ariaDefaultTheme=undefined; ariaMouseten=null; ariaStatus=false; SUBP=0033WrSXqPxfM72wWs9jqgMF55529P9D9WWE-XFkVMDPj6Dil2V2rMDY5JpVF020SK-ce0.pShn7; webim_unReadCount=%7B%22time%22%3A1658980416385%2C%22dm_pub_total%22%3A0%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A0%2C%22msgbox%22%3A0%7D; SUB=_2AkMVvq5QdcPxrARSnvsczmnqa4xH-jyma8emAn7uJhMyAxh87mwGqSVutBF-XFs_2PBC2NmYIWsqsFsk7X8raSk-; PC_TOKEN=71860c5fd4; UOR=www.google.com,weibo.com,www.google.com',# 用户代理,表示浏览器基本身份标识'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)

三、解析数据

# 转数据类型
selector = parsel.Selector(response.text)
# 第一次提取 css选择器 获取所有标签数据内容
trs = selector.css('#pl_top_realtimehot tbody tr')

四、提取数据

for tr in trs:params =list()rank = tr.css('.td-01::text').get()title = tr.css('.td-02 a::text').get()hot = tr.css('.td-02 span::text').get()detail_url = 'https://s.weibo.com/'+tr.css('.td-02 a::attr(href)').get()detail_response = requests.get(url=detail_url,headers=headers)page_text = detail_response.texttree = etree.HTML(page_text)content = tree.xpath('//*[@id="pl_feedlist_index"]/div[2]/div/p/text()')content=''.join(content)dit = {'排名': rank,'标题': title,'热度': hot,'内容': content,'爬取时间':datetime.datetime.now()}params.append(rank)params.append(title)params.append(hot)params.append(content)params.append(datetime.datetime.now())

五、保存数据

1、Mysql数据库存储

# 接上个for循环代码,将数据存储到Mysql库
try:# 创建一个游标对象,进行数据库操作cur = conn.cursor()insersql = "insert into crawl_weibo(rank,title,hot,content,crawl_time) value(%s,%s,%s,%s,%s)ON DUPLICATE KEY UPDATE title=VALUES(title)"cur.execute(insersql,tuple(params))conn.commit()
except Exception as ex:print(ex)

2、 csv文件存储

csv_writer.writerow(dit)

六、代码补充

Mysql

# 创建数据库连接
conn = connect(host='localhost', user='root', password='123456', database='article_spider',port=3306,charset='utf8')

csv

# 创建csv文件
f = open('微博热搜.csv', mode='a', encoding='utf-8', newline='')
# 配置文件
csv_writer = csv.DictWriter(f,fieldnames=['排名','标题','热度','内容','爬取时间'])
# 写入表头
csv_writer.writeheader()

Python_微博热搜保存数据库相关推荐

  1. python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql

    python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...

  2. Python爬虫爬取微博热搜保存为 Markdown 文件

    微博热搜榜python爬虫,仅供学习交流 源码及注释: # -*- coding=UTF-8 -*- #!usr/bin/env pythonimport os import time import ...

  3. python爬取微博热搜写入数据库_python爬虫爬取微博热搜

    [实例简介] [实例截图] [核心代码] import requests                #数据抓取库 from lxml import etree         #数据解析库 imp ...

  4. python每天定时爬取微博热搜并保存到本地(表格、数据库)

    微博热搜网站:https://s.weibo.com/top/summary/ 就是这个样子: pyquery提取: 保险起见headers里加个UA- from pyquery import PyQ ...

  5. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  6. Python爬取微博热搜榜,将数据存入数据库

    一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜.作者写的很简单,有些 ...

  7. 【python热搜爬虫+定时发送邮件操作①】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...

  8. 【python微博爬虫+定时发送邮件操作②】不会吧不会吧!不会2020了还有人需要用软件看微博热搜吧?

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途, ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/details/ ...

  9. python爬取微博热搜并存入表格_python爬虫进阶之爬取微博热搜存入Mysql

    在编程中,我们如果想要把数据转入数据库中,首先会选择 MySQL数据库.因为MySQL数据库体积小.速度快.总体拥有成本低.开放源代码,其有着广泛的应用,例如我们使用python爬虫微博热搜,就可以使 ...

最新文章

  1. legend2---开发日志13(layer_mobile的content传入dom 出现【object object】如何解决)
  2. java我的世界1.7.2怎么下载模组_我的世界1.7.2
  3. 关于mysql使用!=或者<>会导致索引失效问题的验证
  4. Java 反射 (Class、ClassLoader、Constructor、Method、Field)
  5. Web APi之EntityFramework【CRUD】(三)
  6. 用了四年的联想Thinkpad P50,今天还给公司了,拍个照留念
  7. c语言oj合法标识符,YTUOJ-C语言合法标识符
  8. wordpress 外部数据接口_使用接口方式获取WordPress用户信息的方法
  9. 我的linux学习之旅:(4)搭建mysql数据库
  10. algorithm头文件常用函数
  11. Docker到底是什么?为什么它这么火!
  12. PHP根据经纬度计算距离
  13. 数据结构与算法之迷宫回溯
  14. 星期一到星期日的英文_缩写_读音_巧记方法
  15. 数字ic设计——SPI
  16. 利用matlab将三维数据画成三维立体图
  17. SDN和NFV的关系?
  18. 分享一个无需账号完全免费的 ChatGPT-4 的方法
  19. (已更新)全新商城微信小程序源码支持对接公众号
  20. 什么是“中心化”和“去中心化”?区块链是怎么实现去中心化的?

热门文章

  1. [ 深度学习 ] 基础知识:深度学习的57个术语
  2. FineBI 将聚合之后的结果,再求平均值
  3. [知乎]老狼:深入PCI与PCIe之二:软件篇
  4. 设计一个算法求象棋这些棋子各代表哪些数字
  5. Facebook联合创始人Chris Hughes呼吁该公司进行分拆
  6. cython,加速python,保护代码(3):扩展文件 .pxd
  7. 关于IIC初始化后就进入busy状态的问题
  8. V4L2框架-videobuf2
  9. margin带一个、二个、三个、四个参数不同的含义。
  10. 华为云 两个手机 同步_HDC.Cloud | 技术探秘:华为云鲲鹏云手机何以公有云业界独家...