欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》

发布时间:2025/5/22 python 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Python语言用urllib.request模块抓取页面非常简单,再将抓取的页面内容用re模块解析,找出自己想要的东西。下面就就此方法来抓取网易公开课之《麻省理工学院公开课:算法导论》,解析页面内容,找出所有课程列表和相应的链接地址。

一、用urllib.request模块抓取页面

001

data = urllib.request.urlopen(url).read().decode()

二、用re模块解析页面内容

001

rslist = re.compile(pattern).findall(data)

下面就写成完整的示例代码,仅供参考:

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

import re

import urllib.request

 

url = "http://open.163.com/special/opencourse/algorithms.html"

data = urllib.request.urlopen(url).read().decode('GBK', "ignore")

 

pattern = '''<td class="u-ctitle">

                            (.*?)

                            <a href="(.*?)">(.*?)</a>

                                                        <img src=".*?" class="isyy"/>

                                                    </td>'''

rslist = re.compile(pattern).findall(data)

 

for rs in rslist:

    print(rs[0]+rs[2])

    print(rs[1])

运行结果如下:

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

[第1集]课程简介及算法分析

http://open.163.com/movie/2010/12/G/F/M6UTT5U0I_M6V2T1JGF.html

[第2集]渐近符号、递归及解法

http://open.163.com/movie/2010/12/2/E/M6UTT5U0I_M6V2T4T2E.html

[第3集]分治法(1)

http://open.163.com/movie/2010/12/8/U/M6UTT5U0I_M6V2T998U.html

[第4集]快排及随机化算法

http://open.163.com/movie/2010/12/S/4/M6UTT5U0I_M6V2T7IS4.html

[第5集]线性时间排序

http://open.163.com/movie/2010/12/7/V/M6UTT5U0I_M6V2TBK7V.html

[第6集]顺序统计、中值

http://open.163.com/movie/2010/12/J/J/M6UTT5U0I_M756SE0JJ.html

[第7集]哈希表

http://open.163.com/movie/2010/12/R/E/M6UTT5U0I_M6V2TG4RE.html

[第8集]全域哈希和完全哈希

http://open.163.com/movie/2010/12/3/A/M6UTT5U0I_M6V2TGI3A.html

[第9集]二叉搜索树

http://open.163.com/movie/2010/12/6/U/M6UTT5U0I_M6V2TGB6U.html

[第10集]平衡搜索树

http://open.163.com/movie/2010/12/9/J/M6UTT5U0I_M6V2TJ49J.html

[第11集]扩充的数据结构、动态有序统计和区间树

http://open.163.com/movie/2010/12/G/0/M6UTT5U0I_M6V2TSIG0.html

[第12集]跳跃表

http://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html

[第13集]平摊分析,表的扩增,势能方法

http://open.163.com/movie/2010/12/A/L/M6UTT5U0I_M6V2U1OAL.html

[第14集]竞争性分析,自组织表

http://open.163.com/movie/2010/12/I/2/M6UTT5U0I_M6V2U1BI2.html

[第15集]动态规划,最长公共子序列

http://open.163.com/movie/2010/12/L/4/M6UTT5U0I_M6V2U1HL4.html

[第16集]贪婪算法,最小生成树

http://open.163.com/movie/2010/12/1/S/M6UTT5U0I_M6V2U3R1S.html

[第17集]最短路径算法:Dijkstra算法,广度优先搜索

http://open.163.com/movie/2010/12/E/P/M6UTT5U0I_M6V2U4BEP.html

[第18集]最短路径算法:Bellman和差分约束系统

http://open.163.com/movie/2010/12/4/O/M6UTT5U0I_M6V2U754O.html

[第19集]最短路径算法:点的最短路径

http://open.163.com/movie/2010/12/8/H/M6UTT5U0I_M6V2UDN8H.html

[第20集]高级课题 并行算法(一)

http://open.163.com/movie/2010/12/V/E/M6UTT5U0I_M6V2UDUVE.html

[第21集]高级课题 并行算法(二)

http://open.163.com/movie/2010/12/0/B/M6UTT5U0I_M6V2UGJ0B.html

[第22集]高级课题 缓存参数无关算法

http://open.163.com/movie/2010/12/L/L/M6UTT5U0I_M6V2UIKLL.html

[第23集]缓存无关算法2

http://open.163.com/movie/2010/12/E/1/M6UTT5U0I_M6V2UI5E1.html

抓取到23集,这正是我们所需要的结果,至此大功告成~~~

总结

以上是生活随笔为你收集整理的Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。