Python异步爬取知乎热榜的方法
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,今天小编给大家分享一下Python异步爬取知乎热榜的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2025年02月01日Python异步爬取知乎热榜的方法
今天小编给大家分享一下Python异步爬取知乎热榜的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一、错误代码:摘要和详细的url获取不到
import asynciofrom bs4 import BeautifulSoupimport aiohttp headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'referer': 'https://www.baidu.com/s?tn=02003390_43_hao_pg&isource=infinity&iname=baidu&itype=web&ie=utf-8&wd=%E7%9F%A5%E4%B9%8E%E7%83%AD%E6%A6%9C'}async def getPages(url): async with aiohttp.ClientSession(headers=headers) as session: async with session.get(url) as resp: print(resp.status) # 打印状态码 html=await resp.text() soup=BeautifulSoup(html,'lxml') items=soup.select('.HotList-item') for item in items: title=item.select('.HotList-itemTitle')[0].text try: abstract=item.select('.HotList-itemExcerpt')[0].text except: abstract='No Abstract' hot=item.select('.HotList-itemMetrics')[0].text try: img=item.select('.HotList-itemImgContainer img')['src'] except: img='No Img' print("{}\n{}\n{}".format(title,abstract,img)) if __name__ == '__main__': url='https://www.zhihu.com/billboard' loop=asyncio.get_event_loop() loop.run_until_complete(getPages(url)) loop.close()
二、查看JS代码
发现详细链接、图片链接、问题摘要等都在JS里面(CSDN的开发者助手插件确实好用)
正则表达式获取上述信息:
接下来就是详细的代码啦
import asyncioimport jsonimport reimport aiohttp headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'referer': 'https://www.baidu.com/s?tn=02003390_43_hao_pg&isource=infinity&iname=baidu&itype=web&ie=utf-8&wd=%E7%9F%A5%E4%B9%8E%E7%83%AD%E6%A6%9C'}async def getPages(url): async with aiohttp.ClientSession(headers=headers) as session: async with session.get(url) as resp: print(resp.status) # 打印状态码 html=await resp.text() regex=re.compile('"hotList":(.*?),"guestFeeds":') text=regex.search(html).group(1) # print(json.loads(text)) # json换成字典格式 for item in json.loads(text): title=item['target']['titleArea']['text'] question=item['target']['excerptArea']['text'] hot=item['target']['metricsArea']['text'] link=item['target']['link']['url'] img=item['target']['imageArea']['url'] if not img: img='No Img' if not question: question='No Abstract' print("Title:{}\nPopular:{}\nQuestion:{}\nLink:{}\nImg:{}".format(title,hot,question,link,img)) if __name__ == '__main__': url='https://www.zhihu.com/billboard' loop=asyncio.get_event_loop() loop.run_until_complete(getPages(url)) loop.close()
以上就是"Python异步爬取知乎热榜的方法"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
知识
篇文章
代码
方法
内容
就是
摘要
状态
链接
不同
很大
接下来
信息
助手
图片
大部分
字典
开发者
插件
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库的php代码
北京北创网络技术有限公司
雨中冒险2服务器搭建方法
安卓 炒股软件开发
苍溪县公共信用信息数据库目录
读懂网络技术
怎么查公司服务器端口
备份数据库会把病毒一起备份吗
数据库每条记录多大
我的世界服务器怎么挂地图
计算机三级网络技术上机么
为什么服务器总是限制人数
网络安全危害英文
通化定制软件开发
lol盒子服务器
数据库技术怎样才能考过
snap数据库技术
长沙erp软件开发机构
比零少的数据库
深圳杰迪网络技术公司
广州软件开发公司工资待遇
松江天气预报软件开发
数据库ora12033
中级数据库软考多少选择题
北京量子跃进网络技术
雷神服务器加载到97
数据库查询记录重复出现是为什么
sql数据库模糊匹配查询
gdr数据库
长春盘古网络技术公司电话