python 网络爬虫(慕课网)

2023-05-16

代码:

##爬取网络:慕课网("https://www.imooc.com/")

from bs4 import BeautifulSoup
import urllib.request
import xlwt
import time

time_star = time.time()
ur = ["mobile","python","java","php"]  ##通过查看网页源代码,手动构造访问链接
url_basic, mingc, lianj, url, hda, x = [], [], [], [], [], 1

for j in range(len(ur)):
    url_basic.append("http://www.imooc.com/course/list?c=" + ur[j] +"&page=")
    for i in range(7): ##网页个数最多为7
        urll = url_basic[j] + str(i)
        url.append(urll) 


heads = {
     'Connection': 'keep-alive',
    'Accept-Language': 'zh-CN,zh;q=0.9',
     'Accept': 'text/html,application/xhtml+xml,application/xml;\
     q=0.9,image/webp,image/apng,*/*;q=0.8',
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36\
    (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
}

for key,value in heads.items():
    items = (key,value)
    hda.append(items)
    
opn = urllib.request.build_opener()
opn.addheaders = hda
urllib.request.install_opener(opn)

for i in url:
    try:  ##当网页不存在时,跳过本次循环,以便程序继续执行
        data = opn.open(i).read()
        soup = BeautifulSoup(data,'lxml')
        coursenames = soup.find_all('h3',class_="course-card-name")
        links = soup.find_all('a',class_="course-card")
    except:
        continue
    for cour in coursenames:
        coursenames = cour.get_text()
        mingc.append(coursenames)
        x += 1  
    for link in links:
        links = 'https://www.imooc.com'+str(link['href'])
        lianj.append(links)


header = ["序号","课程名称","课程链接"]
with open(r"C:\Users\AdamCY\Desktop\wenjian\python爬虫\py_spa.xlsx", "w",encoding='utf-8') as file:   
    file = xlwt.Workbook(encoding = 'utf-8')  
    sheet = file.add_sheet('hello')  
    sheet.write(0, 0, header[0]) ##此处尚需优化:学习用一行代码插入三列的标题(表头)
    sheet.write(0, 1, header[1])
    sheet.write(0, 2, header[2])
    for i in range(x-1):
        sheet.write(i+1, 0, i+1)
        sheet.write(i+1, 1, mingc[i])  
        sheet.write(i+1, 2, lianj[i])   
        file.save(r"C:\Users\AdamCY\Desktop\wenjian\python爬虫\py_spa.xlsx")

time_spend = time.time() - time_star
print(time_spend)  ##运行结果为32秒,代码执行速度太慢,还需要进一步优化
        

结果:
开始
结尾

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 网络爬虫(慕课网) 的相关文章

随机推荐

  • opengles的总结

    fbo camera
  • chromium内核支持openxr

    Blink实现了在浏览器页签中所有的渲染工作 Chromium拥有一套多进程架构 Chromium有一个浏览器进程和多个带有沙盒能力的渲染进程 Blink则运行在渲染进程中 Mojo是一系列库的集合 xff0c 用于提供一种进程内或跨进程的
  • iqoo neo6 flutter camera插件 recorder 相机录像变绿

    现象 xff1a 1 预览没问题 2 手机也支持yuv420888 3 录制结果偏绿 分析 xff1a 本来认为手机不支持yuv420888 xff0c 经过打印camera2的支持参数是都支持的 况且显示是没问题的 1 跑了一个基础的ca
  • Json转化带有List集合数据解决带有多余引号

    Json转化带有List集合数据 xff0c 如果要求该list数据转化后中括号外无双引号且无转移 xff0c 这种只能在jsonObject put jsonArray jsonArray xff0c 如果是jsonObject put
  • 程序包android.support.v7.app不存在的解决办法

    1 错误原因 xff1a 因为没有成功引入v7的包 xff0c 所以会报这个错误 2 错误体现 xff1a 报错找不到包或者报错style xml找不到什么什么主题 xff0c 根本原因如上 3 为何错误 xff1a 为何会导入不成功 xf
  • Windows 11终端美化配置

    Windows 11终端美化配置 windows11 终端配置美化 下载安装terminal安装oh my posh安装power shell coreposh配置 工具软件安装 我们可以从Microsoft store上下载termina
  • Spring两种配置方式

    Spring有两种配置方式 xff0c 分别为XML配置与java文件配置 xff0c 其实两者本质上是一模一样的 xff0c 只不过用java文件配置的好处是少了一个读文件的过程 xff0c 可以将两种配置方式结合对应起来总结 首先了解一
  • [玩机技巧] [续航][省电][coloros11] 提升续航的终极方案

    usr bin env bash adb shell pm disable user com android dynsystem 快应用 adb shell pm disable user user 0 com nearme instant
  • think php获取m方法的查询数据库,ThinkPHP 查询数据 select(findAll) 方法

    ThinkPHP 查询数据 ThinkPHP 查询数据主要提供以下几类查询 xff1a select xff1a 普通查询 xff0c 同 findAll 方法 find xff1a 取得符合查询条件的一条记录 getBy动态查询 xff1
  • wps一直显示正在备份怎么办_华硕笔记本开机显示:正在准备自动修复怎么办?...

    今天有位知友问坚哥 xff0c 说自己的是华硕的笔记本 xff0c 今天开机就出现状况了 xff0c 开机就直接桌面显示 xff1a 正在准备自动修复 xff0c 然后过一阵子显示 xff1a 正在诊断你的电脑 之后 xff0c 就出现 x
  • python 分析两组数据的差异_TGCA数据的标准化以及差异分析

    前面我们从GDC下载了TCGA肿瘤数据库的数据 也能够把GDC下载的多个TCGA文件批量读入R 今天我们讲一下TCGA数据的标准化 xff0c 以及差异分析 xff0c 得到了标准化后的数据 xff0c 我们就可以按照以前的帖子 xff0c
  • gfsk调制频谱_gfsk调制方式

    fsk gfsk调制解调程序原 5页 2下载券 喜欢此文档的还喜欢 FSK调制方式 2页 免费 FSK调制解调论文 14页 1下载券 FSK调制 8页 免费 第二章2课FSK GFSK 是高斯频移键控的简写 在调制之前通过一个高斯低通滤波器
  • html网页设计思路,极简主义网页设计思路与原则

    极简主义是一种风格 xff0c 也是很多高级设计师都信奉的原则之一 它在室内装修设计 xff0c 人物造型设计 xff0c 时尚搭配服装设计 xff0c 平面vi包装设计以及本文重点提到的网页设计等方面 xff0c 都有着很多经典的案例 素
  • maven详细配置教程

    以后会更好 文章目录 maven下载 maven配置 maven环境变量配置 maven配置文件 IDEA配置maven Eclipse配置maven maven下载 maven下载官网 xff1a 点击 点击进去官网 xff0c 点击Do
  • qt 生产者-消费者模型学习

    我参考的网址 xff1a https mp weixin qq com s wh9RLbDwP1AoNy50i4WEdg https www cnblogs com chentingk p 6497107 html 生产者 消费者模型 生产
  • ftp服务器文件夹设置,ftp服务器对文件夹设置权限

    ftp服务器对文件夹设置权限 内容精选 换一换 将对象权限设置为匿名用户读取权限 xff0c 通过分享对象URL xff0c 匿名用户通过分享的链接地址可访问对象数据 已经设置匿名用户对该对象的读取权限 权限开启方法请参见对匿名用户授予指定
  • arch linux安装全过程,Arch Linux安装全过程

    8种机械键盘轴体对比 本人程序员 xff0c 要买一个写代码的键盘 xff0c 请问红轴和茶轴怎么选 xff1f 内容 安装arch linux系统全过程 精华 完全原创 亲自安装 解释很详细 以下所有markdown行内代码是实际要运行的
  • html checkbox 使用方法,jquery中checkbox使用方法简单实例演示

    和大家分享一段基于jQuery实现checkbox列表全选 反选和不选功能的代码 xff0c 适用于网页多选后需要进行批量操作的场景 如批量删除等 文章结合实例 xff0c 代码简洁 xff0c 基本覆盖选项选择操作的方方面面 xff0c
  • 知识分享之MariaDB——各种数据类型的取值范围

    知识分享之MariaDB 各种整数取值范围 背景 日常我们开发时 xff0c 我们会遇到各种各样的奇奇怪怪的问题 踩坑o o xff0c 这个常见问题系列就是我日常遇到的一些问题的记录文章系列 xff0c 这里整理汇总后分享给大家 xff0
  • python 网络爬虫(慕课网)

    代码 xff1a 爬取网络 xff1a 慕课网 xff08 34 https www imooc com 34 xff09 from bs4 import BeautifulSoup import urllib request import