python 爬取微博实时热搜,并存入数据库实例

本文介绍了一种使用Python爬取微博热搜数据的方法。通过去除源码中的干扰数字并解析中文编码,成功获取了50个热搜主题,并将其存入数据库。此过程涉及网页抓取、正则表达式匹配及数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚学python没几天,打算用paython爬去微博热搜数据试验一下,但是发现微博热搜是动态数据,网页源码并不能直接获取想要的数据,network里也并不能找到相关内容,这时重新查看网页源码,发现有类似中文编码的源码,数一下正好50个,不出意外这个就是我们需要的内容,但是这一串字符加了干扰,直接把中间所有的数字25删除后解析成中文发现就是微博热搜的主题

以下是完整代码

#!python3
#encoding=utf-8
import urllib,pymysql,requests,re
#配置数据库
config = {
          'host':'127.0.0.1',
          'port':3306,
          'user':'root',
          'password':'123456',
          'db':'weibo',
          'charset':'utf8',
          }
#链接数据库
conn=pymysql.connect(**config)
cursor=conn.cursor()
#获取热搜源码
weiboHotFile=requests.get('http://s.weibo.com/top/summary')
weiboHotHtml=weiboHotFile.text
#正则表达式匹配URL ,找到title
hotKey=re.compile(r'td class=\\"td_05\\"><a href=\\"\\/weibo\\/(.*?)&Refer=top\\"')
hotKeyListBe=hotKey.findall(weiboHotHtml)
rank=1
#遍历获取的title 列表
for title in hotKeyListBe:
    #去除干扰数字
    title=title.replace('25','')
    url='http://s.weibo.com/weibo/'+title
    title=urllib.parse.unquote(title)
    print(str(rank)+' '+title+' '+url+'\n')
    #执行数据语句
    sql='insert into hotsearch (rank,daydate,mindate,title,url) values (%s,curdate(),curtime(),%s,%s)'
    cursor.execute(sql,(rank,title,url))
    rank+=1
    conn.commit()
cursor.close()
conn.close()

创建一个bat 文件,运行python脚本


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值