栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫实例:正则表达式爬取微博热搜榜

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫实例:正则表达式爬取微博热搜榜

最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单。

用到了requests,re,xlwt库

直接看图:

#1导入模块
import requests
import re
import xlwt

#2定制请求头
url="https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6"
headers={
    "user-agent":""
    ,"cookie":""
}
#3获取网页数据
r=requests.get(url,headers=headers)
r.encoding=r.apparent_encoding
print(r.status_code)
html=r.text
#4用正则提取排名,热搜内容,热度等信息
datalist=[]
rank=re.findall(r'(.*)',html)
name=re.findall(r'(.*?)',html)[1:51]
hot=re.findall(r'(.*?)',html)[1:51]
datalist.append(rank)
datalist.append(name)
datalist.append(hot)
#5保存数据
book=xlwt.Workbook(encoding="utf-8")
sheet=book.add_sheet("微博热搜",cell_overwrite_ok=True)
head=("排名","内容","热度")
for i in range(0,3):
    sheet.write(0,i,head[i])
for j in range(len(datalist)):
    data=datalist[j]
    for i in range(len(rank)):
        sheet.write(i+1,j,data[i])
book.save("微博热搜.xls")

注意:1请求头一定要带urer-agent和cookie的参数,这里我没有填写需要自己填进去,打开热搜点击F12打开开发者工具,选中network,参看那里面的请求参数urer-agent和cookie都有。

           2一般热搜榜是显示50条,用正则表达式提取的时候,排名刚好提取出50个,热度和内容可能不止50条很容易把最前面那条也提取出来,所以可以在后面加上范围[1:51]表示拿第1条到第50条,去除第0个。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号