Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
果頁(yè)面中包含框架,則每個(gè)框架都擁有自己的 window 對(duì)象,并且保存在 frames 集合中, 在frames 集合中,可以通過索引 或者框架名稱來(lái)訪問相應(yīng)的 window 對(duì)象。每個(gè) window 對(duì)象都有一個(gè) name 屬性,其中包含框的名稱。請(qǐng)看下面一個(gè)包含框架的頁(yè)面:
頁(yè)面框架結(jié)構(gòu)
上面的代碼創(chuàng)建了一個(gè)框架集,其中一個(gè)框架居中,兩個(gè)框架居下。對(duì)于上面的例子,可以通過 window.frames[0] 或者 window.frames['topFrame'] 來(lái)引用上方的框架。不過,最好使用 top 而非 window 來(lái)引用這些框架。
top 對(duì)象始終指向最高(外)層的框架,也就是瀏覽器窗口。使用它可以確保在一個(gè)框架中正確地訪問另外一個(gè)框架。因?yàn)閷?duì)于在一個(gè)框架中編寫的任何代碼來(lái)說(shuō),其中的 window 對(duì)象指向的都是那個(gè)框架的特定實(shí)例,而非最高層框架,下圖展示了在最高層窗口中,通過代碼來(lái)訪問上面例子中每個(gè)框架的不同方式:
通過代碼訪問上面例子中每個(gè)框架的不同方式
與 top 相對(duì)另一個(gè) window 對(duì)象是 parent。parent 對(duì)象始終指向當(dāng)前框架的 直接上層框架。在某些情況下,parent 有可能等于 top;在沒有框架的情況下,parent 一定等于 top (此時(shí)它們都等于 window)。請(qǐng)看下面的例子:
anotherframe2.htm
在瀏覽器加載完第一個(gè)框架后,會(huì)繼續(xù)將第二個(gè)框架加載到 rightFrame 中。如果代碼位于 redFrame (或 blueFrame )中,那么 parent 對(duì)象指向的就是 rightFrame。如果代碼位于 topFrame 中 ,則 parent 指向的是 top ,因?yàn)?topFrame 的直接上層框架就是最外層框架。
注意,除非最外層窗口是通過 window.open() 打開的,否則其 window 對(duì)象的 name 屬性不會(huì)包含任何值。
與框架有關(guān)的最后一個(gè)對(duì)象是 self ,它始終指向 window 。實(shí)際上,self 和 window 對(duì)象是可以互換使用的。引入 self 對(duì)象的目的就是為了與 top 和 parent 對(duì)象對(duì)應(yīng)起來(lái),因此它不格外包含其他值。
、爬蟲程序編寫模板的結(jié)構(gòu):
# 導(dǎo)入請(qǐng)求模塊
from urllib import request
# 導(dǎo)入轉(zhuǎn)碼模塊
from urllib import parse
# 導(dǎo)入隨機(jī)生成請(qǐng)求頭模塊
from fake_useragent import UserAgent
# 程序結(jié)構(gòu)
class xxxSpider(object):
def __init__(self):
# 定義常用變量,比如url或計(jì)數(shù)變量等
def get_html(self):
# 組合url,并獲取響應(yīng)內(nèi)容函數(shù),使用隨機(jī)User-Agent
def parse_html(self):
# 使用正則表達(dá)式來(lái)解析頁(yè)面,提取數(shù)據(jù)
def write_html(self):
# 將提取的數(shù)據(jù)按要求保存,csv、MySQL數(shù)據(jù)庫(kù)等
def run(self):
# 主函數(shù),用來(lái)控制整體邏輯
if __name__ == '__main__':
# 程序開始運(yùn)行時(shí)間
spider = xxxSpider()
spider.run()
二、請(qǐng)求頭池(直接放在一個(gè)ua_info.py文件中提供隨機(jī)調(diào)用)
ua_list = [
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
'User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
]
調(diào)用方式在py文件中引用:
from ua_info import ua_list
self.headers = {"User-Agent": random.choice(ua_list)}
屬性是為HTML元素提供的附加信息。
為相同的HTML元素指定不同的屬性,會(huì)呈現(xiàn)不同的功能或效果。
舉個(gè)例子:
比如我們?cè)谏弦黄芯毩?xí)過的<a></a>標(biāo)簽構(gòu)成的超鏈接元素中有一個(gè)href屬性,這個(gè)屬性指定的是點(diǎn)擊后跳轉(zhuǎn)的頁(yè)面地址,相同的<a>標(biāo)簽改變href屬性就能跳轉(zhuǎn)不同的頁(yè)面。例如
<a href="https://www.bilibili.com/read/cv2720755">殲-20戰(zhàn)斗機(jī)</a>
<a href="http://mil.chinanews.com/mil/hd2011/2014/03-06/315569.shtml">殲-20戰(zhàn)斗機(jī)</a><!-- 注釋 看起來(lái)一樣的超鏈接元素因?yàn)閔ref屬性不同,打開的頁(yè)面也不同。-->
小伙伴們自己寫的時(shí)候要注意使用半角符號(hào),不然不能正確打開鏈接。
超鏈接元素中還有一個(gè)控制鏈接頁(yè)面打開的屬性叫做target,是用來(lái)控制新打開頁(yè)面窗口的位置。下面我們就看看target屬性為_blank和_parent的情況下的不同。例如
<a href="https://www.bilibili.com/read/cv2720755" target="_blank">殲-20戰(zhàn)斗機(jī)</a>
<a href="http://mil.chinanews.com/mil/hd2011/2014/03-06/315569.shtml" target="_parent">殲-20戰(zhàn)斗機(jī)</a><!-- 注釋 看起來(lái)一樣的超鏈接元素因?yàn)閠arget屬性不同,打開的頁(yè)面所在窗口不同。-->
測(cè)試后,target="_blank"時(shí),新頁(yè)面在測(cè)試頁(yè)面窗口旁邊新建一個(gè)窗口打開。
target="_parent"時(shí),新頁(yè)面在原有測(cè)試頁(yè)面窗口中打開。
如圖所示:
左邊為_blank,右邊為_parent,點(diǎn)擊左邊鏈接后,新窗口在原有窗口旁邊打開。如下圖:
點(diǎn)擊右側(cè)
新頁(yè)面在原窗口處打開。
<a>標(biāo)簽的target屬性還有_self、_top這樣的屬性,感興趣的小伙伴可以自行測(cè)試。
一般HTML元素的通用屬性有:class 、id 、style 、title這四類,其中class 、id 、style這三個(gè)屬性會(huì)在CSS的講解中詳細(xì)學(xué)習(xí)。
下面我們通過練習(xí)來(lái)看看title屬性的作用。
HTML元素屬性使用練習(xí)1
NO.1: title
title屬性用于顯示元素的額外信息使用。示例代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<title>第一個(gè)網(wǎng)頁(yè)</title>
</head>
<body>
<h1>第一個(gè)網(wǎng)頁(yè)</h1><hr>
<a href="https://www.bilibili.com/read/cv2720755" target="_blank" title="中國(guó)最先進(jìn)戰(zhàn)斗機(jī)">殲-20戰(zhàn)斗機(jī)</a>
</body>
</html>
效果如圖:當(dāng)鼠標(biāo)移動(dòng)到超鏈接上時(shí),"中國(guó)最先進(jìn)戰(zhàn)斗機(jī)"的說(shuō)明就出現(xiàn)在下側(cè)。
NO.2:href/src/url
這三個(gè)屬性雖然寫法不同,但都是為元素指定路徑使用的。不屬于通用屬性。
例如<a>標(biāo)簽中指定鏈接路徑使用的是href,而<img>標(biāo)簽中導(dǎo)入圖片的路徑是src,url在css中也常用來(lái)引入鏈接。具體練習(xí)大家可以翻看《HTML中的元素使用方法2——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作》一文。
這里要介紹的是關(guān)于網(wǎng)頁(yè)中的路徑的兩個(gè)重要概念:絕對(duì)路徑、相對(duì)路徑。
絕對(duì)路徑是指文件在硬盤上真正存在的路徑。
相對(duì)路徑就是相對(duì)自己的目標(biāo)文件的位置。
怎么理解這兩個(gè)概念呢?舉個(gè)例子:
如果我們要在"第一個(gè)頁(yè)面.html"中顯示一張圖片image1.jpg,它們都在我的"D盤/零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作"這個(gè)文件夾中。如圖:
如果用絕對(duì)路徑導(dǎo)入寫法是這樣的:
<img src="file:///D:/零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作/image1.jpg"/>
相對(duì)路徑這樣寫:
<img src="image1.jpg"/>
大家觀察一下,也看出了絕對(duì)路徑與相對(duì)路徑的區(qū)別了。
另外,這樣的鏈接也屬于絕對(duì)路徑:href="https://www.bilibili.com/read/cv2720755"
那么什么時(shí)候使用相對(duì)路徑什么時(shí)候使用絕對(duì)路徑呢?這個(gè)問題我會(huì)在明天深入為大家講解,這涉及到網(wǎng)頁(yè)或網(wǎng)站上傳服務(wù)器的問題。
做教程確實(shí)是沒什么人看,但是我依然會(huì)堅(jiān)持,我是一名高校教師(認(rèn)證資料等疫情結(jié)束后去辦公室拍攝上傳吧),把自己的知識(shí)寫出來(lái)對(duì)自己來(lái)說(shuō)是一個(gè)提高,也把原來(lái)很多常用卻不甚了然的概念再次打磨清晰是我最大的收獲。本篇教程針對(duì)完全沒有基礎(chǔ)的網(wǎng)頁(yè)制作學(xué)習(xí)者,利用碎片時(shí)間學(xué)習(xí),只要我們堅(jiān)持,必然可以完成網(wǎng)頁(yè)制作的學(xué)習(xí),為未來(lái)學(xué)習(xí)更加復(fù)雜的內(nèi)容打下基礎(chǔ)!
喜歡的小伙伴請(qǐng)關(guān)注我,閱讀中遇到任何問題請(qǐng)給我留言,如有疏漏或錯(cuò)誤歡迎大家斧正,不勝感激!
HTML序章(學(xué)習(xí)目的、對(duì)象、基本概念)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML是什么?——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
第一個(gè)HTML頁(yè)面如何寫?——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML頁(yè)面中head標(biāo)簽有啥用?——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
初識(shí)meta標(biāo)簽與SEO——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML中的元素使用方法1——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML中的元素使用方法2——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML元素中的屬性1——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML元素中的屬性2(路徑詳解)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
使用HTML添加表格1(基本元素)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
使用HTML添加表格2(表格頭部與腳部)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
使用HTML添加表格3(間距與顏色)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
使用HTML添加表格4(行顏色與表格嵌套)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
16進(jìn)制顏色表示與RGB色彩模型——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML中的塊級(jí)元素與內(nèi)聯(lián)元素——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
初識(shí)HTML中的<div>塊元素——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
在HTML頁(yè)面中嵌入其他頁(yè)面的方法——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
封閉在家學(xué)網(wǎng)頁(yè)制作!為頁(yè)面嵌入PDF文件——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML表單元素初識(shí)1——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML表單元素初識(shí)2——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML表單3(下拉列表、多行文字輸入)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML表單4(form的action、method屬性)——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML列表制作講解——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
為HTML頁(yè)面添加視頻、音頻的方法——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
音視頻格式轉(zhuǎn)換神器與html視頻元素加字幕——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
HTML中使用<a>標(biāo)簽實(shí)現(xiàn)文本內(nèi)鏈接——零基礎(chǔ)自學(xué)網(wǎng)頁(yè)制作
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。