日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2025/5/22 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python語言用urllib.request模塊抓取頁面非常簡單,再將抓取的頁面內容用re模塊解析,找出自己想要的東西。下面就就此方法來抓取網(wǎng)易公開課之《麻省理工學院公開課:算法導論》,解析頁面內容,找出所有課程列表和相應的鏈接地址。

一、用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集]順序統(tǒng)計、中值

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集]擴充的數(shù)據(jù)結構、動態(tài)有序統(tǒng)計和區(qū)間樹

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集]動態(tài)規(guī)劃,最長公共子序列

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算法,廣度優(yōu)先搜索

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

[第18集]最短路徑算法:Bellman和差分約束系統(tǒng)

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集]高級課題 緩存參數(shù)無關算法

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抓取页面,网易公开课之《麻省理工学院公开课:算法导论》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。