当前位置: 首页 > news >正文

【网友委托的爬虫代码】KanAcademyTranscriptsSprider.py(网站有反爬虫,做不了)

【网友委托的爬虫代码】KanAcademyTranscriptsSprider.py(网站有反爬虫,做不了)

# python3.8.x
# 保存的txt有少量html标签包裹,请自行清除
import requests
from bs4 import BeautifulSoup
enDomain = "https://www.khanacademy.org/"
ruDomain = "https://ru.khanacademy.org/"
enTranscripts = []
ruTranscripts = []def getAllUnits(url):unitTags = []respone = requests.get(url)soup = BeautifulSoup(respone.content, "html.parser")# unitTags = soup.find_all("a",class_="_m3n46ga")#units.append(unitTag["href"])root = soup.find("div", class_="_1r0pi8am")print(respone.content)print(root)all_a = root.find_all_next("a")for a in all_a:if a["href"] != "/math/early-math":unitTag.append(a)return unitTagspassdef requestEn():print("爬取中,请稍后")enFile = open("Early math review-en.txt","w")#url = enUrlFirstName + "math/early-math/"units = getAllUnits(enDomain + "math/early-math")for unit in units:respone = requests.get(enDomain + unit["href"])soup = BeautifulSoup(respone.content, "html.parser")link_titles = soup.find_all("div", class_="_stw1dyg")for link_title in link_titles:lesson_link = link_title.find_next("a")lesson_page_full_url = enDomain + lesson_link["href"]respone = requests.get(lesson_page_full_url)videoTabTranscript = soup.find("div", id="videoTabTranscript-panel")enFile.write(link_title.get_text())enFile.write(videoTabTranscript.get_text())        enFile.close()passdef requestRu():ruFile = open("Early math review-ru.txt", "w")ruFile.close()requestEn()
#requestRu()
# def mergeEN_Transcripts():
#     pass# def mergeRU_Transcripts():
#     pass

 

http://www.jsqmd.com/news/330440/

相关文章:

  • 基于ASP的毕业论文管理系统的设计与实现 开题报告
  • Flink在大数据领域的安全漏洞防范
  • 基于Android的课堂教学辅助系统 开题报告
  • 2025年12月Scratch图形化编程等级考试四级真题试卷
  • 2026年1月专业评测|主流GEO优化服务商优选机构权威推荐
  • 别被“伪自律”绑架:为什么你的“中国胃”跑不动“西式沙拉”?
  • 数据中台在大数据领域的应用挑战与解决方案
  • 聚焦国内高端女装连衣裙市场:五大品牌风格解析与核心竞争力盘点
  • 基于ASPNET的音乐网站 开题报告
  • 利用RabbitMQ提升大数据系统的消息吞吐量
  • 揭秘MrBeast爆款视频的底层算法:四小时逆向工程揭示病毒式传播公式
  • 基于Android的校园食堂点餐系统的设计与实现--开题报告
  • 基于Android的玩转化妆美妆APP的设计与实现 开题报告2
  • 题解:P1007 独木桥
  • Java面试必看:start()和run()哪个才是正确的线程启动方式?
  • 2026年豆包GEO优化服务商权威指南:从技术到效果落地全流程方案
  • 基于Android的学生信息管理系统 开题报告
  • 无忧花客服AI流量赋能创新,重塑体验新标杆
  • 基于Android的校园商品交易系统的 开题报告
  • 2026年2月美妆行业GEO优化公司实测推荐:AI推荐率翻倍策略
  • 终极笔记应用程序Alexandrie - 教程
  • 【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
  • - 标题:基于matlab的眼球实时跟踪系统 - 关键词:matlab GUI 数字图像处理 ...
  • 【Linux】线程同步与互斥深度解析:从锁机制到生产者消费者模型 - 实践
  • blender fbx 比例不对 比例调整
  • 向量的叉乘
  • 【易经系列】初九,磐桓,利居贞,利建侯。
  • 2026特钢材料采购全攻略:行业标准+优质厂家+选型避坑
  • 《AI Coding手册:Claude Code、OpenAI Codex、OpenClaw深度解析与实战指南》
  • Vue-skills的中文文档