亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

了解網(wǎng)頁(yè)結構

優(yōu)采云 發(fā)布時(shí)間: 2020-05-08 08:01

  學(xué)習資料:

  學(xué)習爬蟲(chóng), 首先要懂的是網(wǎng)頁(yè). 支撐起各類(lèi)光鮮亮麗的網(wǎng)頁(yè)的不是別的, 全都是一些代碼.這種代碼我們稱(chēng)之為 HTML,HTML 是一種瀏覽器(Chrome, Safari, IE, Firefox等)看得懂的語(yǔ)言, 瀏覽器能將這些語(yǔ)言轉換成我們用肉眼見(jiàn)到的網(wǎng)頁(yè).所以 HTML 里面必將存在著(zhù)好多規律, 我們的爬蟲(chóng)還能根據這樣的規律來(lái)爬取你須要的信息.

  其實(shí)不僅 HTML, 一同打造多彩/*敏*感*詞*網(wǎng)頁(yè)的組件還有 CSS 和. 但是這個(gè)簡(jiǎn)單的爬蟲(chóng)教程,大部分時(shí)間會(huì )將會(huì )使用 HTML.CSS 和 JavaScript 會(huì )在后期簡(jiǎn)單介紹一下. 因為爬網(wǎng)頁(yè)的時(shí)侯多多少少還是要和 CSS JavaScript 打交道的.

  

  雖然莫煩Python主打的是機器學(xué)習的教程. 但是這個(gè)爬蟲(chóng)教程適用于任何想學(xué)爬蟲(chóng)的朋友們.從機器學(xué)習的角度看爬蟲(chóng)結構, 機器學(xué)習中的大量數據, 也是可以從這種網(wǎng)頁(yè)中來(lái), 使用爬蟲(chóng)來(lái)爬取各類(lèi)網(wǎng)頁(yè)里面的信息, 然后再裝入各類(lèi)機器學(xué)習的方式,這樣的應用途徑正在越來(lái)越多被采用. 所以假如你的數據也是分散在各個(gè)網(wǎng)頁(yè)中, 爬蟲(chóng)是你降低人力勞動(dòng)的必修課.

  網(wǎng)頁(yè)基本組成部分

  在真正步入爬蟲(chóng)之前, 我們先來(lái)做一下熱身運動(dòng), 弄明白網(wǎng)頁(yè)的基礎, HTML 有什么組成部分,是怎么樣運作的. 如果你早已十分熟悉網(wǎng)頁(yè)的構造了, 歡迎直接跳過(guò)這一節, 進(jìn)入下邊的學(xué)習.

  我制做了一個(gè)特別簡(jiǎn)易的網(wǎng)頁(yè), 給你們呈現以下最肉感的 HTML 結構.如果你點(diǎn)開(kāi)它, 呈現在你眼前的, 就是下邊這張圖的上半部份. 而下半部份就是我們網(wǎng)頁(yè)背后的 HTML code.

  

  想問(wèn)我是怎么見(jiàn)到 HTML 的 source code 的? 其實(shí)很簡(jiǎn)單, 在你的瀏覽器中 (我用的是 Google Chrome),顯示網(wǎng)頁(yè)的地方, 點(diǎn)擊滑鼠右鍵,大多數瀏覽器就會(huì )有類(lèi)似這樣一個(gè)選項 “View Page Source”. 點(diǎn)擊它能夠看見(jiàn)頁(yè)面的源碼了.

  

  在 HTML 中, 基本上所有的實(shí)體內容, 都會(huì )有個(gè) tag 來(lái)框住它. 而這個(gè)被 tag 住的內容, 就可以被展示成不同的方式, 或有不同的功能.主體的 tag 分成兩部份, header 和 body. 在 header 中, 存放這一些網(wǎng)頁(yè)的網(wǎng)頁(yè)的元信息, 比如說(shuō) title, 這些信息是不會(huì )被顯示到你看見(jiàn)的網(wǎng)頁(yè)中的.這些信息大多數時(shí)侯是給瀏覽器看, 或者是給搜索引擎的爬蟲(chóng)看.

  <head>

<meta charset="UTF-8">

<title>Scraping tutorial 1 | 莫煩Python</title>

<link rel="icon" href="https://morvanzhou.github.io/static/img/description/tab_icon.png">

</head>

  HTML 的第二大塊是 body, 這個(gè)部份才是你看見(jiàn)的網(wǎng)頁(yè)信息. 網(wǎng)頁(yè)中的 heading, 視頻, 圖片和文字等都儲存在這里.這里的 <h1></h1> tag 就是主標題, 我們看見(jiàn)呈現下來(lái)的療效就是大一號的文字. <p></p> 里面的文字就是一個(gè)段落.<a></a>里面都是一些鏈接. 所以好多情況, 東西都是置于這種 tag 中的.

  <body>

<h1>爬蟲(chóng)測試1</h1>

<p>

這是一個(gè)在 <a href="https://morvanzhou.github.io/">莫煩Python</a>

<a href="https://morvanzhou.github.io/tutorials/scraping">爬蟲(chóng)教程</a> 中的簡(jiǎn)單測試.

</p>

</body>

  爬蟲(chóng)想要做的就是按照這種 tag 來(lái)找到合適的信息.

  用 Python 登錄網(wǎng)頁(yè)

  好了, 對網(wǎng)頁(yè)結構和 HTML 有了一些基本認識之后, 我們能夠用 Python 來(lái)爬取這個(gè)網(wǎng)頁(yè)的一些基本信息.首先要做的, 是使用 Python 來(lái)登入這個(gè)網(wǎng)頁(yè), 并復印出這個(gè)網(wǎng)頁(yè) HTML 的 source code.注意, 因為網(wǎng)頁(yè)中存在英文, 為了正常顯示英文, read() 完之后, 我們要對讀下來(lái)的文字進(jìn)行轉換, decode() 成可以正常顯示英文的方式.

  from urllib.request import urlopen

# if has Chinese, apply decode()

html = urlopen(

"https://morvanzhou.github.io/static/scraping/basic-structure.html"

).read().decode('utf-8')

print(html)

  print 出來(lái)就是下邊這樣啦. 這就證明了我們能否成功讀取這個(gè)網(wǎng)頁(yè)的所有信息了. 但我們還沒(méi)有對網(wǎng)頁(yè)的信息進(jìn)行匯總和借助.我們發(fā)覺(jué), 想要提取一些方式的信息, 合理的借助 tag 的名子非常重要.

  <!DOCTYPE html>

<html lang="cn">

<head>

<meta charset="UTF-8">

<title>Scraping tutorial 1 | 莫煩Python</title>

<link rel="icon" href="https://morvanzhou.github.io/static/img/description/tab_icon.png">

</head>

<body>

<h1>爬蟲(chóng)測試1</h1>

<p>

這是一個(gè)在 <a href="https://morvanzhou.github.io/">莫煩Python</a>

<a href="https://morvanzhou.github.io/tutorials/scraping">爬蟲(chóng)教程</a> 中的簡(jiǎn)單測試.

</p>

</body>

</html>

  匹配網(wǎng)頁(yè)內容

  所以這兒我們使用 Python 的正則表達式 RegEx 進(jìn)行匹配文字, 篩選信息的工作. 我有一個(gè)很不錯的正則表達式的教程,如果是中級的網(wǎng)頁(yè)匹配, 我們使用正則完全就可以了, 高級一點(diǎn)或則比較冗長(cháng)的匹配, 我還是推薦使用 BeautifulSoup.不急不急, 我知道你想偷懶, 我然后馬上還會(huì )教 beautiful soup 了. 但是如今我們還是使用正則來(lái)做幾個(gè)簡(jiǎn)單的事例, 讓你熟悉一下套路.

  如果我們想用代碼找到這個(gè)網(wǎng)頁(yè)的 title, 我們能夠這樣寫(xiě). 選好要使用的 tag 名稱(chēng) <title>. 使用正則匹配.

  import re

res = re.findall(r"<title>(.+?)</title>", html)

print("\nPage title is: ", res[0])

# Page title is: Scraping tutorial 1 | 莫煩Python

  如果想要找到中間的那種段落 <p>, 我們使用下邊方式, 因為這個(gè)段落在 HTML 中還參雜著(zhù) tab, new line, 所以我們給一個(gè)flags=re.DOTALL 來(lái)對那些 tab, new line 不敏感.

  res = re.findall(r"<p>(.*?)</p>", html, flags=re.DOTALL) # re.DOTALL if multi line

print("\nPage paragraph is: ", res[0])

# Page paragraph is:

# 這是一個(gè)在 <a href="https://morvanzhou.github.io/">莫煩Python</a>

# <a href="https://morvanzhou.github.io/tutorials/scraping">爬蟲(chóng)教程</a> 中的簡(jiǎn)單測試.

  最后一個(gè)練習是找一找所有的鏈接, 這個(gè)比較有用, 有時(shí)候你想找到網(wǎng)頁(yè)里的鏈接, 然后下載一些內容到筆記本里,就靠這樣的途徑了.

  res = re.findall(r'href="(.*?)"', html)

print("\nAll links: ", res)

# All links:

['https://morvanzhou.github.io/static/img/description/tab_icon.png',

'https://morvanzhou.github.io/',

'https://morvanzhou.github.io/tutorials/scraping']

  下次我們就來(lái)瞧瞧為了圖方面爬蟲(chóng)結構, 我們怎樣使用 BeautifulSoup.

  相關(guān)教程

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久