怎么使用python爬取知乎热榜Top50数据
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章将为大家详细讲解有关怎么使用python爬取知乎热榜Top50数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、导入第三方库import urllib.
千家信息网最后更新 2024年11月26日怎么使用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'') #文章配图def getData(baseurl): datalist = [] html = askURL(baseurl) # print(html) soup = BeautifulSoup(html,'html.parser') for item in soup.find_all('a',class_="css-hi1lih"): # print(item) data = [] item = str(item) Id = re.findall(findid,item) if(len(Id) == 0): Id = re.findall(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安全错误
数据库的锁怎样保障安全
黑客入侵平台需要服务器吗
江西pdu服务器电源运用
播商网络技术有限公司
服务器安全狗好用么
南通网络安全咨询报价
微服务三高架构下数据库如何处理
隐匿之地服务器
网络安全知识进校园活动方案
我国网络安全法律顺序
软件开发相关的公司有哪些
数据库引用函数
越秀区正规网络技术开发分类
移动互联网科技馆
霆智服务器开机怎么进入系统
我的世界服务器加载披风
wsd扫描服务器
想做软件开发需要哪些知识
intel服务器系列介绍
k8s运行数据库集群
win7有服务器管理器吗
网络安全类型选项
私服过图慢是服务器
工程软件开发排行榜
sipdroid 服务器
市场监管信息软件开发环境
树结构数据怎样存数据库
盈达网络技术科技
程序化交易软件开发工具
frp 多服务器端
淘宝会员服务器怎么用