国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python爬蟲實(shí)戰(zhàn)之最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲教程

python爬蟲實(shí)戰(zhàn)之最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲教程

2020-12-01 00:47xiaomi Python

在我們?nèi)粘I暇W(wǎng)瀏覽網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來(lái)做桌面壁紙,或者用來(lái)做設(shè)計(jì)的素材。下面這篇文章就來(lái)給大家介紹了關(guān)于利用python實(shí)現(xiàn)最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲的相關(guān)資料

前言

網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁(yè)追逐者),是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本。最近對(duì)python爬蟲有了強(qiáng)烈地興趣,在此分享自己的學(xué)習(xí)路徑,歡迎大家提出建議。我們相互交流,共同進(jìn)步。話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹:

1.開發(fā)工具

筆者使用的工具是sublime text3,它的短小精悍(可能男人們都不喜歡這個(gè)詞)使我十分著迷。推薦大家使用,當(dāng)然如果你的電腦配置不錯(cuò),pycharm可能更加適合你。

sublime text3搭建python開發(fā)環(huán)境推薦查看這篇文章:

[sublime搭建python開發(fā)環(huán)境][http://www.jfrwli.cn/article/119329.html]

2.爬蟲介紹

爬蟲顧名思義,就是像蟲子一樣,爬在Internet這張大網(wǎng)上。如此,我們便可以獲取自己想要的東西。

既然要爬在Internet上,那么我們就需要了解URL,法號(hào)“統(tǒng)一資源定位器”,小名“鏈接”。其結(jié)構(gòu)主要由三部分組成:

(1)協(xié)議:如我們?cè)诰W(wǎng)址中常見的HTTP協(xié)議。

(2)域名或者IP地址:域名,如:www.baidu.com,IP地址,即將域名解析后對(duì)應(yīng)的IP。

(3)路徑:即目錄或者文件等。

3.urllib開發(fā)最簡(jiǎn)單的爬蟲

(1)urllib簡(jiǎn)介

 

Module Introduce
urllib.error Exception classes raised by urllib.request.
urllib.parse Parse URLs into or assemble them from components.
urllib.request Extensible library for opening URLs.
urllib.response Response classes used by urllib.
urllib.robotparser Load a robots.txt file and answer questions about fetchability of other URLs.

(2)開發(fā)最簡(jiǎn)單的爬蟲

百度首頁(yè)簡(jiǎn)潔大方,很適合我們爬蟲。

爬蟲代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from urllib import request
 
def visit_baidu():
 URL = "http://www.baidu.com"
 # open the URL
 req = request.urlopen(URL)
 # read the URL
 html = req.read()
 # decode the URL to utf-8
 html = html.decode("utf_8")
 print(html)
 
if __name__ == '__main__':
 visit_baidu()

結(jié)果如下圖:

python爬蟲實(shí)戰(zhàn)之最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲教程

我們可以通過(guò)在百度首頁(yè)空白處右擊,查看審查元素來(lái)和我們的運(yùn)行結(jié)果對(duì)比。

當(dāng)然,request也可以生成一個(gè)request對(duì)象,這個(gè)對(duì)象可以用urlopen方法打開。

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from urllib import request
 
def vists_baidu():
 # create a request obkect
 req = request.Request('http://www.baidu.com')
 # open the request object
 response = request.urlopen(req)
 # read the response
 html = response.read()
 html = html.decode('utf-8')
 print(html)
 
if __name__ == '__main__':
 vists_baidu()

運(yùn)行結(jié)果和剛才相同。

(3)錯(cuò)誤處理

錯(cuò)誤處理通過(guò)urllib模塊來(lái)處理,主要有URLError和HTTPError錯(cuò)誤,其中HTTPError錯(cuò)誤是URLError錯(cuò)誤的子類,即HTTRPError也可以通過(guò)URLError捕獲。

HTTPError可以通過(guò)其code屬性來(lái)捕獲。

處理HTTPError的代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from urllib import request
from urllib import error
 
def Err():
 url = "https://segmentfault.com/zzz"
 req = request.Request(url)
 
 try:
 response = request.urlopen(req)
 html = response.read().decode("utf-8")
 print(html)
 except error.HTTPError as e:
 print(e.code)
if __name__ == '__main__':
 Err()

運(yùn)行結(jié)果如圖:

python爬蟲實(shí)戰(zhàn)之最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲教程

404為打印出的錯(cuò)誤代碼,關(guān)于此詳細(xì)信息大家可以自行百度。

URLError可以通過(guò)其reason屬性來(lái)捕獲。

chuliHTTPError的代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from urllib import request
from urllib import error
 
def Err():
 url = "https://segmentf.com/"
 req = request.Request(url)
 
 try:
 response = request.urlopen(req)
 html = response.read().decode("utf-8")
 print(html)
 except error.URLError as e:
 print(e.reason)
if __name__ == '__main__':
 Err()

運(yùn)行結(jié)果如圖:

python爬蟲實(shí)戰(zhàn)之最簡(jiǎn)單的網(wǎng)頁(yè)爬蟲教程

既然為了處理錯(cuò)誤,那么最好兩個(gè)錯(cuò)誤都寫入代碼中,畢竟越細(xì)致越清晰。須注意的是,HTTPError是URLError的子類,所以一定要將HTTPError放在URLError的前面,否則都會(huì)輸出URLError的,如將404輸出為Not Found。

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from urllib import request
from urllib import error
 
# 第一種方法,URLErroe和HTTPError
def Err():
 url = "https://segmentfault.com/zzz"
 req = request.Request(url)
 
 try:
 response = request.urlopen(req)
 html = response.read().decode("utf-8")
 print(html)
 except error.HTTPError as e:
 print(e.code)
 except error.URLError as e:
 print(e.reason)

大家可以更改url來(lái)查看各種錯(cuò)誤的輸出形式。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

原文鏈接:https://segmentfault.com/a/1190000010567472

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩一区二区三区在线电影 | 中国久久久 | 欧美午夜一区二区三区 | 国产一区 欧美 | 国产精品日本 | 黄频免费在线观看 | 中文字幕人成乱码在线观看 | 日韩精品一区二区三区中文字幕 | 在线中文av| 一区二区三区中文字幕 | 亚洲成人一区在线 | 蜜桃tv一区二区三区 | 久热在线| 日韩成人中文字幕 | 99精品一区二区三区 | 高清中文字幕av | 欧美久 | 成人免费在线观看 | 最近免费中文字幕大全免费版视频 | 国产一区二区三区在线看 | 亚洲三级视频 | 久久久久成人精品 | 国产日韩欧美一区 | 99精品欧美一区二区三区综合在线 | 日韩国产| 日韩成人免费 | 美女视频一区二区三区 | 在线成人av| 亚洲一区二区在线视频 | 亚洲精品视频免费 | 久草免费福利 | 免费国产一区 | 欧美日韩国产在线观看 | 懂色av中文字幕一区二区三区 | 天天躁日日躁aaaaxxxx | 国产精品久久久久免费a∨ 欧美黄色精品 | 欧美在线高清 | 久久久国产精品入口麻豆 | 我要看免费黄色片 | 激情综合五月 | 91久久精品国产亚洲a∨麻豆 |