一、错误代码:摘要和详细的url获取不到

import asyncio
from bs4 import BeautifulSoup
import aiohttpheaders={'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].texttry:abstract=item.select('.HotList-itemExcerpt')[0].textexcept:abstract='No Abstract'hot=item.select('.HotList-itemMetrics')[0].texttry: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 asyncio
import json
import re
import aiohttpheaders={'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异步爬取知乎热榜相关推荐

  1. html定位 知乎,从零开始:python实现爬取知乎热榜(随缘更新完善)

    获取URL 获取HTML 解析HTML 获取URL 首先要知道URL是什么: URL: Uniform Resource Identifier,即统一资源标识符. URL: Uniform Resou ...

  2. python爬取知乎热榜了解时事

    python爬取知乎热榜了解时事 需求 ​ 知乎热榜是我们了解时事的一个重要途径,但是如果我们每天没有那么多时间来刷知乎,但是还是想要了解知乎热榜的话,我们该怎么办呢?在这里,我想到了通过知乎爬虫的手 ...

  3. 【知乎热榜爬虫】python爬取知乎热榜问题及答案

    所用库 requests xpath解析库 multiprocessing多进程 pymysql数据库操作库 实战背景 主要是爬取知乎热榜的问题及点赞数比较高的答案,通过requests请求库进行爬取 ...

  4. python xpath爬取新闻标题_爬取知乎热榜标题和连接 (python,requests,xpath)

    用python爬取知乎的热榜,获取标题和链接. 环境和方法:ubantu16.04.python3.requests.xpath 1.用浏览器打开知乎,并登录 2.获取cookie和User-Agen ...

  5. python爬虫实战(2)——爬取知乎热榜内容

    文章目录 一.前期准备 1.获取headers 2.查看网页源代码 二.python代码实现 1.解析网页 2.获取标签 3.完整代码 三.最终结果 一.前期准备 1.获取headers 登录知乎官网 ...

  6. 【一学就会】爬取知乎热榜话题下的回答及评论点赞数

    最近印度新冠疫情爆发,连我国都有好几个城市出现了印度的变异病毒.为此,我特意去知乎上逛了逛关于印度疫情的话题 [如何看待全球新冠确诊超 1.5 亿,印度单日新增确诊连续 9 天超 30 万例,未来国际 ...

  7. Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中

    Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中 1.需要的Python模块 主要是requests模块,用于得到的网页的数据 安装命令为:pip install requests 2 ...

  8. 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎

    一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: 1 # -*- c ...

  9. Python爬虫-爬取知乎(小结)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:小小科 ( 想要学习Python?Python学习交流 ...

最新文章

  1. 解决System.Data.SqlClient.SqlException (0x80131904): Timeout 时间已到的问题
  2. mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
  3. CloudStack4.1.1升级CloudPlatForm4.2.0实践手册
  4. gdb 跟踪调试命令整理
  5. 2020/Province_C_C++_A/A/门牌制作
  6. Python的Django框架中forms表单类的使用方法详解
  7. 【算法笔记】B1058 选择题
  8. 跨境电商和独立站哪个好?
  9. Java开发中遇到最难的问题!java定义list集合
  10. 求n个排序链表的交集
  11. python类方法和实例方法syntax errors_python新手常犯的17个错误
  12. vue json 编辑组件_内置为Vue组件的Visual JSON编辑器
  13. 怎么简单使用Xftp6
  14. word标题级别编号设置
  15. 如何调整网站竞价关键词
  16. 如何把像素修改为300dpi?
  17. 辐射4核能选项用计算机失败,玩游戏出问题了?《辐射4》PC版常见问题汇总和解决方案...
  18. 表白套路计算机公式,数学公式的超酷表白
  19. Abstract Introduction
  20. 接口测试(python+requests)

热门文章

  1. CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测
  2. Pandas matplotlib 无法显示中文
  3. OpenCV官方文档 理解k - means聚类
  4. 一位Python初学者的自白:Python小白眼中的装饰器
  5. 让powershell同时只能运行一个脚本(进程互斥例子)
  6. 如何编写一份软件工程实验报告
  7. C#中Lock关键字的使用
  8. iis出现 Server Application Error 错误解决方法(xp iis5.1 配置asp项目出现500错)
  9. STM32F103CB 芯片FLASH DOWNLOAD编程地址范围设置相关问题记录
  10. STM32 定时器 定时时间的计算