国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python學(xué)習(xí)(4):python爬蟲入門案例-爬取圖片

2019-11-06 08:02:22
字體:
供稿:網(wǎng)友

前言:

學(xué)習(xí)了python的基礎(chǔ)知識(shí)后,我們來寫一個(gè)簡(jiǎn)單的爬蟲案例,本案例用到了urllib和re庫(kù)。

本案例的爬蟲原理:

首先我們用urllib庫(kù)來模擬瀏覽器訪問網(wǎng)站的行為,由給定的網(wǎng)站鏈接(url)得到對(duì)應(yīng)網(wǎng)頁(yè)的源代碼(html標(biāo)簽)。其中,源代碼以字符串的形式返回。

然后我們用正則表達(dá)式re庫(kù)在字符串(網(wǎng)頁(yè)源代碼)中匹配表示圖片鏈接的小字符串,返回一個(gè)列表。最后循環(huán)列表,根據(jù)圖片鏈接將圖片保存到本地。

其中urllib庫(kù)的使用在python2.x和python3.x中的差別很大,本案例以python3.x為例

正文:

直接上代碼:

'''    第一個(gè)簡(jiǎn)單的爬蟲程序,使用python3.x和urllib與re庫(kù)'''import urllib.requestimport redef getHtmlCode(url):  # 該方法傳入url,返回url的html的源碼    headers = {        'User-Agent': 'Mozilla/5.0 (linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'    }    url1 = urllib.request.Request(url, headers=headers) # Request函數(shù)將url添加頭部,模擬瀏覽器訪問    page = urllib.request.urlopen(url1).read()  # 將url頁(yè)面的源代碼保存成字符串    page = page.decode('UTF-8')  # 字符串轉(zhuǎn)碼    return pagedef getImg(page):  # 該方法傳入html的源碼,經(jīng)過截取其中的img標(biāo)簽,將圖片保存到本機(jī)    # findall(正則,代表頁(yè)面源碼的str)函數(shù),在字符串中按照正則表達(dá)式截取其中的小字符串    # findall()返回一個(gè)列表,列表中的元素是一個(gè)個(gè)的元組,元組的第一個(gè)元素是圖片的url,第二個(gè)元素是url的后綴名    # 列表形如:[('http://www.zhangzishi.cc/732x120.gif', 'gif'), ('http://ww2.sinaimg.cn/qomyo.jpg', 'jpg')    imgList = re.findall(r'(http:[^/s]*?(jpg|png|gif))"',page)    x = 0    for imgUrl in imgList:  # 列表循環(huán)        上述代碼在找圖片的url時(shí),我們用的是re(正則表達(dá)式)。re用得好的話會(huì)有奇效,用的不好,效果極差。

既然我們得到了網(wǎng)頁(yè)的源代碼,我們何不根據(jù)標(biāo)簽的名稱來得到其中的內(nèi)容。

接下來要介紹的BeautifulSoupl庫(kù)就能根據(jù)標(biāo)簽的名稱來得到標(biāo)簽的內(nèi)容。請(qǐng)參見本人博客:點(diǎn)我進(jìn)入博客


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 开平市| 正安县| 云林县| 习水县| 浦县| 新兴县| 枣庄市| 无棣县| 灌云县| 合水县| 绥滨县| 东阿县| 西乌珠穆沁旗| 醴陵市| 东辽县| 大同县| 白朗县| 南澳县| 额尔古纳市| 北京市| 南江县| 原阳县| 田阳县| 武乡县| 萝北县| 仙游县| 磴口县| 杨浦区| 南城县| 邛崃市| 苍溪县| 翁源县| 丹寨县| 奉贤区| 威信县| 于都县| 密云县| 海兴县| 靖远县| 治县。| 喀什市|