怎么使用python爬取知乎热榜Top50数据
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关怎么使用python爬取知乎热榜Top50数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、导入第三方库import urllib.
千家信息网最后更新 2026年11月03日怎么使用python爬取知乎热榜Top50数据
') #问题排名findtitle = re.compile(r'这篇文章将为大家详细讲解有关怎么使用python爬取知乎热榜Top50数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
1、导入第三方库
import urllib.request,urllib.error #请求网页from bs4 import BeautifulSoup # 解析数据import sqlite3 # 导入数据库import re # 正则表达式import time # 获取当前时间
2、程序的主函数
def main(): # 声明爬取网页 baseurl = "https://www.zhihu.com/hot" # 爬取网页 datalist = getData(baseurl) #保存数据 dbname = time.strftime("%Y-%m-%d", time.localtime()) # dbpath = "zhihuTop50 " + dbname saveData(datalist,dbpath)3、正则表达式匹配数据
#正则表达式findlink = re.compile(r'(.*?)
(.*?)
') #问题标题findintroduce = re.compile(r'(.*?)
') #简要介绍findscore = re.compile(r'(.*?)
') #热门评分findimg = re.compile(r'4、程序运行结果

5、程序源代码
import urllib.request,urllib.errorfrom bs4 import BeautifulSoupimport sqlite3import reimport timedef main(): # 声明爬取网页 baseurl = "https://www.zhihu.com/hot" # 爬取网页 datalist = getData(baseurl) #保存数据 dbname = time.strftime("%Y-%m-%d", time.localtime()) dbpath = "zhihuTop50 " + dbname saveData(datalist,dbpath) print()#正则表达式findlink = re.compile(r'(.*?)(.*?)
') #问题标题findintroduce = re.compile(r'(.*?)
') #简要介绍findscore = re.compile(r'(.*?)
') #热门评分findimg = re.compile(r'(.*?)
',item)[0] else: Id = Id[0] data.append(Id) # print(Id) Link = re.findall(findlink,item)[0] data.append(Link) # print(Link) Title = re.findall(findtitle,item)[0] data.append(Title) # print(Title) Introduce = re.findall(findintroduce,item) if(len(Introduce) == 0): Introduce = " " else:Introduce = Introduce[0] data.append(Introduce) # print(Introduce) Score = re.findall(findscore,item)[0] data.append(Score) # print(Score) Img = re.findall(findimg,item) if (len(Img) == 0): Img = " " else: Img = Img[0] data.append(Img) # print(Img) datalist.append(data) return datalistdef askURL(baseurl): # 设置请求头 head = { # "User-Agent": "Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/80.0.3987.163Safari/537.36" "User-Agent": "Mozilla / 5.0(iPhone;CPUiPhoneOS13_2_3likeMacOSX) AppleWebKit / 605.1.15(KHTML, likeGecko) Version / 13.0.3Mobile / 15E148Safari / 604.1" } request = urllib.request.Request(baseurl, headers=head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") # print(html) except urllib.error.URLError as e: if hasattr(e, "code"): print(e.code) if hasattr(e, "reason"): print(e.reason) return html print()def saveData(datalist,dbpath): init_db(dbpath) conn = sqlite3.connect(dbpath) cur = conn.cursor() for data in datalist: sql = ''' insert into Top50( id,info_link,title,introduce,score,img) values("%s","%s","%s","%s","%s","%s")'''%(data[0],data[1],data[2],data[3],data[4],data[5]) print(sql) cur.execute(sql) conn.commit() cur.close() conn.close()def init_db(dbpath): sql = ''' create table Top50 ( id integer primary key autoincrement, info_link text, title text, introduce text, score text, img text ) ''' conn = sqlite3.connect(dbpath) cursor = conn.cursor() cursor.execute(sql) conn.commit() conn.close()if __name__ =="__main__": main()关于"怎么使用python爬取知乎热榜Top50数据"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
数据
问题
网页
正则
表达式
文章
程序
篇文章
热门
更多
标题
简要
链接
评分
不错
实用
内容
函数
数据库
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
保险科技 互联网保险
华服互联网科技怎么样
A股互联网金融科技公司
互联网下的科技发展
碳银互联网科技
齐家互联网科技有限公司
互联网 新科技
科技伦理 互联网公司
哈尔滨新华互联网科技
老年人脱离互联网科技的作文
互联网和高科技公司
崇明区互联网教育科技诚信经营
厦门千工互联网科技有限公司
国大互联网教育科技有限公司工作
长沙互联网科技
产业互联网科技服务公司
互联网科技资金流入
玉溪新华互联网科技怎么选
恒生科技指数 中概互联网
华人运通互联网科技公司
云信互联网科技有限公司
为想互联网科技
广州宏创互联网科技
伴你行互联网科技有限公司
苏州五指互联网络科技有限
华夏互联网科技业
互联网科技与大数据专业
本届互联网博览会上的黑科技
云南省自由互联网科技有限公司
互联网科技手机排行榜