整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          HTML入門基礎知識

          TML的入門

          1. HTML的代碼文件

          (1)打開Hbuilder開發(fā)工具,新建項目,點擊右鍵新建一個HTML文檔。

          (2)在文檔中寫HTML代碼

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="UTF-8">

          <title>產(chǎn)品列表</title>

          </head>

          <body>

          這是產(chǎn)品頁面

          <b>好好學習,天天向上</b>

          <h1>好好學習,天天向上</h1>

          </body>

          </html>

          溫馨提示:

          常用的快捷鍵:

          Ctrl+s:保存

          ctrl+c:復制

          ctrl+x:剪切

          ctrl+v:粘貼

          2. HTML的基本結(jié)構

          對于HTML文件的后綴名一般為“html”或“htm”

          2.1HTML的標簽格式

          (1)什么是HTML標簽?

          HTML標簽是有開始標簽和結(jié)束標簽組成

          開始標簽:是被尖括號包圍的元素名

          結(jié)束標簽:是被尖括號包圍的斜杠和元素名

          <元素>內(nèi)容 </元素>

          例如:<b>好好學習天天向上</b>

          注意:有些HTML標簽是沒有結(jié)束標簽的, <hr/>

          (2)單標簽和雙標簽

          雙標簽:例如:<b></b>

          單標簽:<hr/> <br/>

          (3) 標簽的屬性

          <font size="1">好好學習</font>

          <font size="7">好好學習</font>

          <h1 title="h1" style="color: red;">

          我是一個標題標簽

          </h1>

          3. HTML基本結(jié)構的認識

          <!--<!DOCTYPE html>:文檔聲明,告知瀏覽器文檔使用哪種HTML或XHTML規(guī)范,讓瀏覽器通過正確的方式解析我們的網(wǎng)頁,讓網(wǎng)頁能夠正確的顯示。-->

          <!DOCTYPE html>

          <!-- <html>標簽:是網(wǎng)頁的跟標簽-->

          <html>

          <!--head是網(wǎng)頁頭,一般表示網(wǎng)頁中描述信息-->

          <head>

          <!--

          meta:提供網(wǎng)頁的相關信息,有利于搜索引擎收錄

          charset="UTF-8": 設置網(wǎng)頁編碼方式為utf-8

          name="Keywords" :設置網(wǎng)頁關鍵字

          name="viewport": 設置網(wǎng)頁視窗大小

          -->

          <meta name="Keywords" content="HTML5前端開發(fā)工程師入門到精通課程"/>

          <meta charset="UTF-8">

          <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

          <!-- <title></title>:表示網(wǎng)頁的標題 -->

          <title></title>

          </head>

          <body>

          <!--

          <body></body>:網(wǎng)頁的主體內(nèi)容,用戶呈現(xiàn)的內(nèi)容,比如文字,圖片,鏈接,視頻……

          -->

          </body>

          </html>

          4. HTML的注釋

          <!--這里是注釋的內(nèi)容-->

          5. HTML的編碼問題

          常見編碼個格式:

          UTF-8:國際通用的編碼格式

          GBK/GB2312:中文編碼字符

          HTML的編碼:<meta charset="UTF-8">

          6. HTML規(guī)范

          (1)html標簽都是有尖括號包圍的標簽,比如<b>

          (2)標簽通常是成對存在,<b></b>,<h1></h1>

          (3)HTML不區(qū)分大小寫,我們建議小寫。

          (4)HTML可以嵌套,但是允許交叉嵌套

          正確寫法:<b> <h1>我很粗</h1> </b>

          錯誤寫法:

          <b> <h1>我很粗 </b></h1>

          篇主要介紹爬取500彩票網(wǎng),獲取所有雙色球的開獎結(jié)果,寫入到csv文件。

          (1) 分析標題

          通過分析,發(fā)現(xiàn)標題信息在如下地方顯示:



          私信小編007即可獲取小編精心準備的資料呢!如有需要源碼請單獨私信!

          (2) 分析開獎號碼

          通過分析,發(fā)現(xiàn)開獎號碼在如下地方顯示:

          (3) 分析往期開獎結(jié)果url

          通過分析,發(fā)現(xiàn)網(wǎng)頁是通過一個下拉菜單,選擇相應的期號,會自動跳轉(zhuǎn)對應的網(wǎng)站。

          網(wǎng)站規(guī)律就是http://kaijiang.500.com/shtml/ssq/+"期號"+.shtml

          2、思路分析

          先提取網(wǎng)頁數(shù)據(jù),用Beautiful Soup從網(wǎng)頁抓取數(shù)據(jù),然后通過正則表達式,提取想要的數(shù)據(jù)。

          3、代碼:

          import requests
          from bs4 import BeautifulSoup
          import re
          #獲取網(wǎng)頁數(shù)據(jù),偽裝成瀏覽器
          def gethtml(url):
           headers = {
           "Use-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) Apple
          WebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
           }
           req = requests.get(url,headers = headers)
           req.encoding = "GBK"
           html = req.text
           bf = BeautifulSoup(html, "html.parser")
           return bf
          #爬取標題
          def gettitle(html):
           titlehtml = html.find_all("td", class_="td_title01")
           titletxt = str(titlehtml).strip()
           p1 = r'shtml">(.*?)<f.*?<strong>(.*?)</strong>.*?</font>(.*?)</a>
          .*?right">(.*?)</span>'
           titles = re.compile(p1, re.S).findall(titletxt)
           qi = list(titles[0])
           qi[2] = ('期')
           return ''.join(qi)
          #爬取紅色球
          def getred(html):
           redhtml = html.find_all("li", class_="ball_red")
           redtxt = str(redhtml).strip()
           p1 = r'red">(.*?)</li>'
           reds = re.compile(p1, re.S).findall(redtxt)
           return '紅球:' + ' '.join(reds)
          #爬取藍色球
          def getbule(html):
           bulehtml = html.find_all("li", class_="ball_blue")
           buletxt = str(bulehtml).strip()
           p1 = r'blue">(.*?)</li>'
           bules = re.compile(p1, re.S).findall(buletxt)
           return '藍球:' + ' '.join(bules)
          #獲取所有url
          def getlistnum(html):
           listnumhtml = html.find_all("span", class_="iSelectBox")
           p1 = r'href="(.*?)">'
           listnums = re.compile(p1, re.S).findall(str(listnumhtml))
           return listnums[1:]
          url = 'http://kaijiang.500.com/shtml/ssq/18131.shtml'
          def main():
           html = gethtml(url)
           htmlurls = getlistnum(html)
           for htmlurl in htmlurls:
           ssqhtml = gethtml(htmlurl)
           a = gettitle(ssqhtml)
           b = getred(ssqhtml)
           c = getbule(ssqhtml)
           #寫入txt文件
           with open(r'D:\1.txt','a') as f:
           print(htmlurl)
           f.write(a + '\n'+ b + '\n'+ c + '\n')
           f.close()
          if __name__ == "__main__":
           main()
          

          代碼自行拿去用吧!輸出文件:



          到此結(jié)束!需要源碼請后臺私信小編即可哦!

          景說明

          假設需要劫持http響應并在html頁面中注入一段js代碼后再傳回瀏覽器,實現(xiàn)在瀏覽器出現(xiàn)一個彈框消息提醒。

          由于原始html頁面編碼格式存在UTF-8、GBK等多種編碼格式,如果注入的js包含中文消息的話,那么在UTF-8或GBK編碼的頁面就會有一個出現(xiàn)亂碼。有沒有辦法做到不管是針對GBK、UTF-8編碼的頁面都能做到正常顯示而不會出現(xiàn)亂碼哪?

          產(chǎn)生亂碼的原因

          首先來分析一下產(chǎn)生亂碼的原因,我們在瀏覽器看到的信息都是通過圖形學手段在顯示器上呈現(xiàn)出來的,而實際保存在計算機硬件上的都是0和1(因為計算機實現(xiàn)是基于二進制),那么計算機要顯示、傳遞信息就需要依靠一套規(guī)則把一串串的0和1識別為正確的字符,這就是編碼。

          例如01000001在ASCII編碼規(guī)則下對應字母A。相同的0/1串,不同的編碼解析出的字符一般是不同的,因此如果html頁面按照UTF-8的編碼解析正常,那么按照GBK的編碼解析就會是亂碼了。根據(jù)上面的示意圖,假設注入的js代碼為utf-8編碼格式,而原始html編碼格式也為UTF-8編碼格式,那么最終注入這部分中的中文就能正常顯示,但是如果原始html為GBK編碼,那注入的這部分js代碼的中文就會顯示亂碼。

          解決辦法

          有一種unicode統(tǒng)一編碼字符集,目標是把所有文字、字符統(tǒng)一編碼,也就是一串0/1組合在unicode字符集下對應的字符是唯一的,不會存在歧義。而js是支持解析unicode字符的,那么就可以在注入js中把要顯示的消息統(tǒng)一轉(zhuǎn)換為unicode編碼,瀏覽器端去解析這個unicode編碼,這樣不管原始html是UTF-8還是GBK,都能正常顯示中文。

          原始注入js代碼關于中文字符的部分

          // utf-8編碼格式
          let message = "中文";

          解決亂碼的注入js代碼關于中文字符的部分

          // utf-8編碼格式
          let message = "\\u4e2d\\u6587";  // 這個編碼對應上面的message"中文"

          注意:

          1. 注入的js代碼仍然是utf-8編碼格式,只是消息內(nèi)容轉(zhuǎn)換為unicode編碼的形式;
          2. unicode中0x4e2d表示的0/1串對應漢字"中",0x6587對應的0/1串對應漢字"文";
          3. message其實也不是真正的unicode編碼,它只是普通的字符串,只是使用了unicode對應的碼點(也就是二進制對應的數(shù)值),因為可以利用這個碼點在瀏覽器中恢復出正確的字符,事實上unicode字符集并沒有規(guī)定具體的編碼格式。

          主站蜘蛛池模板: 国产av熟女一区二区三区| 久久久久久人妻一区精品| 亚洲.国产.欧美一区二区三区| 在线精品自拍亚洲第一区| 国产一区二区在线观看app| 无码人妻精品一区二区三区99性| 国产主播福利精品一区二区| 国精无码欧精品亚洲一区| 精品亚洲av无码一区二区柚蜜| 亚洲线精品一区二区三区影音先锋 | 免费高清av一区二区三区| 国产亚洲一区二区在线观看| 在线观看一区二区三区视频| 无码国产精品一区二区免费vr| 精品乱人伦一区二区| 国产一区二区不卡老阿姨| 久久国产免费一区二区三区| 国产伦一区二区三区高清| 韩国精品一区视频在线播放| 老熟女高潮一区二区三区| 少妇人妻偷人精品一区二区| 精品女同一区二区三区在线| 亚洲精品精华液一区二区| 无码视频一区二区三区在线观看 | 天海翼一区二区三区高清视频| 亚洲AV日韩AV天堂一区二区三区| 香蕉久久AⅤ一区二区三区| 国产精品日韩欧美一区二区三区 | 国产一区中文字幕在线观看 | 国产成人高清精品一区二区三区| 国产怡春院无码一区二区 | 日韩有码一区二区| 韩国精品一区二区三区无码视频| 精品人妻一区二区三区浪潮在线| 国产伦精品一区二区三区| 国产一区麻豆剧传媒果冻精品| 一区二区三区免费高清视频| 国产一区二区三区四| 韩国女主播一区二区| 日韩精品一区在线| 国产精品无码一区二区三区免费|