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抓取页面,网易公开课之《麻省理工学院公开课:算法导论》的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 美媒:中国大陆最火的工作,教人工智能识图
- 下一篇: Python爬虫学到什么程度就可以去找工