coding=utf-8
import urllib2
import re
import os
#this function from internet @littlebai
#去掉特征字符串內(nèi)的html操作符
def filter_tags(htmlstr):
re_cdata=re.compile('//<!\[CDATA\[[^>]*//\]\]>',re.I) #匹配CDATA
re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)#Script
re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I)#style
re_p=re.compile('<P\s*?/?>')#處理?yè)Q行
re_h=re.compile('</?\w+[^>]*>')#HTML標(biāo)簽
re_comment=re.compile('<!--[^>]*-->')#HTML注釋
s=re_cdata.sub('',htmlstr)#去掉CDATA
s=re_script.sub('',s) #去掉SCRIPT
s=re_style.sub('',s)#去掉style
s=re_p.sub('\r\n',s)#將<p>轉(zhuǎn)換為換行
s=re_h.sub('',s) #去掉HTML 標(biāo)簽
s=re_comment.sub('',s)#去掉HTML注釋
blank_line=re.compile('\n+')#去掉多余的空行
s=blank_line.sub('\n',s)
return s
#設(shè)置下載文件的保存位置
path = "E:\news.qq.com\a\20120506\"
#匹配url規(guī)則
rege = re.compile(r"/a/\d{8}/\d{6}.htm")
#從主頁(yè)獲得所有存在的url鏈接的后半部分并排序
urlcontent = urllib2.urlopen('http://news.qq.com/a/20120506/index.htm').read()
get_url = rege.findall(urlcontent)
get_url.sort()
#根據(jù)所獲得的url數(shù)量建立循環(huán)遍歷所有url鏈接
for i in xrange(0,len(get_url)):
get_url[i] = "http://news.qq.com"+get_url[i]#完整鏈接
#異常處理:部分url鏈接打開(kāi)延時(shí)或者無(wú)法打開(kāi)則跳過(guò)此次循環(huán)
try:#異常跳出
sub_web = urllib2.urlopen(get_url[i]).read()#打開(kāi)完整url鏈接,獲取內(nèi)容
except urllib2.URLError, e:
print get_url[i][-10:-4]+' Failed'
continue
#下面開(kāi)始內(nèi)容操作
re_keyt = "<h1>.+</h1>"#獲取標(biāo)題,此處的標(biāo)題不含騰訊新聞的后綴比較方便
title = re.findall(re_keyt,sub_web)#去掉標(biāo)題左右的html標(biāo)簽
re_keyc = re.compile("<div id=\"Cnt-Main-Article-QQ\".*</P></div>\n</div>",re.DOTALL)#匹配正文內(nèi)容的正則(個(gè)別頁(yè)面無(wú)法獲得,見(jiàn)if塊)
content = re_keyc.findall(sub_web)#獲得正文內(nèi)容
#個(gè)別頁(yè)面由于有視頻或其他的無(wú)法匹配正文內(nèi)容的正則表達(dá)式,所以無(wú)法獲得內(nèi)容,應(yīng)給與過(guò)濾
if len(title)==0 or len(content)==0:
continue
re_content = filter_tags(title[0]+"\r\n"+content[0])#將標(biāo)題和正文放到一起并去除html標(biāo)簽代碼
w=file(path+get_url[i][-10:-4]+'.txt','w')#根據(jù)頁(yè)面的文件名建立txt文件,并打開(kāi)為寫(xiě)入方式
w.write(re_content)#寫(xiě)入獲得的去除了html標(biāo)簽代碼的標(biāo)題和正文
w.close()#關(guān)閉文件
#命令行輸出提示文件下載進(jìn)度
print 'Completed the'+str(i+1)+" -Total "+str(len(get_url))+" THE "+get_url[i][-10:]
#完成所有url鏈接的下載
print "Fuck The Stupied Guy!!!!"
#退出腳本
exit()
站的每一個(gè)部分都很重要,你是否忽略了“聯(lián)系我們”頁(yè)面?來(lái)看看有什么設(shè)計(jì)這個(gè)頁(yè)面的技巧吧。
Yummygum
Yummygum的聯(lián)系頁(yè)面很干凈很簡(jiǎn)單,只有3個(gè)框和一個(gè)提交按鈕。簡(jiǎn)單的好處是不會(huì)讓游客望而卻步。
大號(hào)的文字顯得簡(jiǎn)練易讀,方便瀏覽者快速校對(duì)信息,從而有更大的滿足感。
以現(xiàn)在的網(wǎng)頁(yè)技術(shù)很容易創(chuàng)建一個(gè)動(dòng)態(tài)的聯(lián)系表格。通常留有3-6個(gè)框供瀏覽者填寫(xiě)姓名,郵件和個(gè)人信息。
大多數(shù)網(wǎng)站游客偏愛(ài)這種聯(lián)系表,因?yàn)楸容^節(jié)省時(shí)間——不需要打開(kāi)自己的郵件客戶(hù)端、拷貝郵箱地址。目前網(wǎng)站聯(lián)系表格通常包含網(wǎng)絡(luò)安全技術(shù)比如CAPTCHA,所以安全性是很強(qiáng)的。
這種表格的所有元素看起來(lái)很統(tǒng)一,給人感覺(jué)很完整。另外建議使用JavaScript顯示提示和幫助,確保用戶(hù)知道他們的消息已發(fā)送成功。
Princeink
復(fù)雜一點(diǎn)表格看Prince Ink quote form網(wǎng)站,頁(yè)面分為4部分。
記住,不是每個(gè)框都要填寫(xiě)。只有帶星號(hào)是必填的。大部分情況下,游客能夠識(shí)別星號(hào),但是部分游客可能發(fā)現(xiàn)不了。如果是設(shè)計(jì)更大的聯(lián)系表格,要突出必填的項(xiàng)目。這樣將簡(jiǎn)化提交過(guò)程,優(yōu)化用戶(hù)體驗(yàn)。
表格既要講統(tǒng)一性,也要講審美。畢竟表格是網(wǎng)站外觀的一個(gè)重要部分。
Underbelly
Underbelly是一個(gè)設(shè)計(jì)創(chuàng)意機(jī)構(gòu)網(wǎng)站,聯(lián)系頁(yè)面很獨(dú)特。顯而易見(jiàn),這個(gè)聯(lián)系表格用了CSS樣式表和JavaScript。輸入界面看起來(lái)像一般正式文件的表格形式。設(shè)計(jì)獨(dú)特整潔,讓人覺(jué)得發(fā)送電子郵件也成了一種樂(lè)趣!
Dangerousrobot
Dangerous Robot 網(wǎng)站的設(shè)計(jì)跟上一個(gè)不同,聯(lián)系表格與其他元素通過(guò)明亮的暖色和矢量圖案很好的融合在一起。聯(lián)系表格基本采取居中模式,每個(gè)框里加上圖標(biāo),使得辨識(shí)度和閱讀速度得到提高。
一個(gè)公司的地理位置在商務(wù)交往中往往扮演著重要的角色。加入嵌入式地圖則把企業(yè)地址可視化。谷歌地圖有一個(gè)自定義的嵌入功能,允許開(kāi)發(fā)者添加全功能的谷歌地圖到聯(lián)系頁(yè)面。
Bkwld
BKWLD的聯(lián)系頁(yè),除了一些基本的郵件/電話信息,添加了MAPbox動(dòng)態(tài)地圖,調(diào)高了交互性。
Fortyonetwenty
也可以考慮使用一個(gè)定制的照片,不用JavaScript地圖。在FortyOneTwenty網(wǎng)站聯(lián)系頁(yè)面,使用一個(gè)世界地圖,上面的藍(lán)點(diǎn)標(biāo)注了全球分公司和員工分布情況。
由于這張照片是作為背景圖像,所以融合更自然。地圖讓位于內(nèi)容,顯得不喧賓奪主。
在聯(lián)系頁(yè)面添加社交網(wǎng)站鏈接,可賦予企業(yè)可觸摸的人格。這些鏈接可供瀏覽者在無(wú)法或者不宜使用電話、郵件的情況下聯(lián)系企業(yè),并且可以瀏覽企業(yè)更多動(dòng)態(tài)信息。最好能在同一頁(yè)上提供不同的社交賬號(hào)鏈接,讓瀏覽者決定選擇哪一個(gè)。
Tone
我最喜歡的英國(guó)創(chuàng)意機(jī)構(gòu)非Tone莫屬,無(wú)論是它的作品或者是作品集網(wǎng)站。它的聯(lián)系頁(yè)使用定位他們辦公室的完整地圖和動(dòng)態(tài)聯(lián)系表格。
往下滾動(dòng)鼠標(biāo),你會(huì)發(fā)現(xiàn)一個(gè)長(zhǎng)長(zhǎng)的的社交媒體圖標(biāo)水平列表。這些鏈接包括該公司的各種社交賬號(hào)包括Twitter,LinkedIn,Instagram。按鈕大而醒目,但是并沒(méi)有放在頁(yè)面頂部,因?yàn)猷]件,電話和地址才是最重要的。
Positiveadvertising
Positive Advertising網(wǎng)站的社交賬號(hào)圖標(biāo)設(shè)置的比較小。這個(gè)網(wǎng)站是單網(wǎng)頁(yè)網(wǎng)站。社交賬號(hào)圖標(biāo)位于電話號(hào)碼,電子郵件地址和郵寄地址的下面。圖標(biāo)采取了統(tǒng)一的單色處理。
這個(gè)方法使用較少,但是可以增加網(wǎng)頁(yè)的個(gè)性。個(gè)人網(wǎng)站可以在聯(lián)系頁(yè)面加上本人照片。大一點(diǎn)的公司往往把照片轉(zhuǎn)移到“公司團(tuán)隊(duì)”頁(yè)面,每個(gè)重要人物有單獨(dú)的照片和介紹。
Blueskyresumes
Blue Sky Resumes網(wǎng)站的“關(guān)于我們”頁(yè)面包含一段團(tuán)隊(duì)的介紹。每個(gè)雇員都有自己?jiǎn)为?dú)的網(wǎng)頁(yè)鏈接。
“聯(lián)系我們”頁(yè)面的頂部,注意到沿左邊一個(gè)固定的滾動(dòng)塊沒(méi)有,滾動(dòng)塊小按鈕鏈接到電子郵件,手機(jī)信息,還可以發(fā)送一個(gè)請(qǐng)求報(bào)價(jià)。這個(gè)網(wǎng)站聯(lián)系頁(yè)面非常生動(dòng),讓人耳目一新。
Etsy
Etsy的“團(tuán)隊(duì)”頁(yè)面。每個(gè)團(tuán)隊(duì)成員照片鏈接到各人簡(jiǎn)介頁(yè)面。這種個(gè)性化的設(shè)計(jì)無(wú)論是對(duì)于客戶(hù)還是公司的第三方供應(yīng)商來(lái)講是都很棒的。
這個(gè)團(tuán)隊(duì)網(wǎng)頁(yè)不直接鏈接到他們的聯(lián)系頁(yè)面。這是一種有目的的設(shè)計(jì)選擇,因?yàn)楣居心敲炊嗦殕T,足夠撐起一個(gè)網(wǎng)頁(yè)。不過(guò)該網(wǎng)頁(yè)可以鏈接到“關(guān)于”網(wǎng)頁(yè),“新聞”網(wǎng)頁(yè),其中包含一些電子郵件聯(lián)系信息。
團(tuán)隊(duì)成員列表不是必須有的,但在合適的時(shí)機(jī)可以作為良好的補(bǔ)充。
任何網(wǎng)頁(yè)的最重要的是可用性,只要你學(xué)會(huì)迎合用戶(hù)體驗(yàn),那么設(shè)計(jì)精良的聯(lián)系頁(yè)面就不在話下了。
HTML是最流行的Web前端開(kāi)發(fā)技術(shù)之一,它是一種用于創(chuàng)建網(wǎng)頁(yè)和 Web 應(yīng)用程序的標(biāo)記語(yǔ)言。HTML與CSS和JavaScript結(jié)合使用以創(chuàng)建有吸引力且響應(yīng)迅速的前端網(wǎng)頁(yè)。
HTML 提供了幾個(gè)不同的元素,如 <head>、<body>、<p>、<img>、<a> 等,它們充當(dāng)網(wǎng)站的構(gòu)建塊,瀏覽器使用這些 HTML 元素來(lái)解釋和表示網(wǎng)頁(yè)上的內(nèi)容。
HTML 概述
HTML(超文本標(biāo)記語(yǔ)言)是Web瀏覽器理解并用于呈現(xiàn)網(wǎng)頁(yè)的語(yǔ)言。在不同元素的幫助下,HTML 決定了網(wǎng)頁(yè)的外觀和顯示內(nèi)容。超文本標(biāo)記語(yǔ)言 (HTML) 是一種用于創(chuàng)建獨(dú)立于平臺(tái)的超文本文檔的簡(jiǎn)單標(biāo)記語(yǔ)言。
HTML 文檔是具有通用語(yǔ)義的 SGML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)文檔,可用于表示來(lái)自各種學(xué)科的數(shù)據(jù)。HTML 標(biāo)記可用于創(chuàng)建超文本郵件、文檔、新聞和超媒體;選項(xiàng)菜單;數(shù)據(jù)庫(kù)查詢(xún)結(jié)果;帶有內(nèi)嵌圖形的簡(jiǎn)單結(jié)構(gòu)化文檔;和現(xiàn)有數(shù)據(jù)集的超文本視圖。
HTML 語(yǔ)言的主要用途
輕松瀏覽互聯(lián)網(wǎng)
超文本允許你訪問(wèn) Internet 上的不同頁(yè)面,尤其是在你沒(méi)有記住所有 URL 的情況下。你只需單擊鏈接或在地址字段中輸入 URL 即可瀏覽互聯(lián)網(wǎng)。超文本對(duì)于引導(dǎo)用戶(hù)瀏覽你的網(wǎng)站并充當(dāng)網(wǎng)關(guān)至關(guān)重要,以便他們知道存在不同的頁(yè)面并可以在它們之間導(dǎo)航。如果不使用超文本,用戶(hù)很難檢測(cè)到網(wǎng)站上是否還有其他網(wǎng)頁(yè)。
尖端功能
HTML 支持 Polyfill 功能,它是一種允許你在 HTML 中本地使用不同技術(shù)的代碼。你可以使用此功能復(fù)制未來(lái)的API,同時(shí)為過(guò)時(shí)版本的瀏覽器提供回退功能;你可以自定義polyfill庫(kù)以滿足你的特定要求并執(zhí)行其他人從未做過(guò)的事情。HTML 的這些尖端特性是HTML有如此多用途的原因。
創(chuàng)建 Web 文檔
網(wǎng)頁(yè)只是一個(gè)Web文檔,你可以在其中編寫(xiě)你希望用戶(hù)看到的材料,然后將其包裝在指示機(jī)器如何格式化整個(gè)內(nèi)容的代碼中。這會(huì)告訴你的瀏覽器標(biāo)題、正文和元數(shù)據(jù)中的文本,它帶有標(biāo)簽,因此計(jì)算機(jī)知道如何處理你提供的信息。
數(shù)據(jù)輸入
你擁有執(zhí)行任何數(shù)據(jù)輸入任務(wù)所需的所有 API。作為開(kāi)發(fā)人員,你只需在相關(guān)字段中添加標(biāo)簽,例如文本和數(shù)據(jù)格式,你甚至可以提供屏幕鍵盤(pán)和驗(yàn)證,確保為用戶(hù)提供流暢和愉快的體驗(yàn)。
游戲開(kāi)發(fā)
游戲開(kāi)發(fā)是 HTML 的重要用途之一。盡管不再支持Flash,但HTML仍可用于創(chuàng)建基于瀏覽器的游戲。你使用的API不必完全實(shí)現(xiàn),但可以使用最必要的組件,同時(shí)去掉了其余的功能,帶來(lái)了更輕松的體驗(yàn)。由于HTML5的進(jìn)步,HTML正迅速成為最流行的游戲編程語(yǔ)言之一。
離線存儲(chǔ)
如果你的一些用戶(hù)不在線怎么辦?在最新版本的HTML中找到的應(yīng)用程序緩存方法的幫助下,你仍然可以使你的應(yīng)用程序運(yùn)行。應(yīng)用程序緩存負(fù)責(zé)各種離線功能,包括各種組件,包括需要更新的API調(diào)用。通過(guò)清單文件,你可以控制瀏覽器對(duì)其離線使用的操作,甚至它使用的資源。
原生API使用
API代表“應(yīng)用程序編程接口”,這是兩個(gè)不同應(yīng)用程序相互通信的一種方式。通過(guò)使用API,HTML包括地理定位、事件管理、拖放和更多功能,HTML編程現(xiàn)在比以往任何時(shí)候都更強(qiáng)大。開(kāi)發(fā)人員還可以使用具有異步特性的現(xiàn)代在線應(yīng)用程序。
在客戶(hù)端存儲(chǔ)東西
IndexDB和Localstorage 使在客戶(hù)端存儲(chǔ)文件更簡(jiǎn)單、更高效,這些都有自己的一套強(qiáng)大的功能。
Localstorage支持setItem、getItem 和removeItem方法,以及基于字符串的哈希表存儲(chǔ)。IndexDB帶有更多的存儲(chǔ)空間,你可以在用戶(hù)許可的情況下增加。
方便使用的
與其他編程語(yǔ)言不同,HTML以用戶(hù)友好而聞名,即使對(duì)于初學(xué)者也是如此,所以,這也是HTML的主要用途之一。HTML中有語(yǔ)義組件來(lái)描述它們所具有的內(nèi)容類(lèi)型,例如,頁(yè)眉、頁(yè)腳、主要、摘要和時(shí)間等HTML常用標(biāo)簽是自描述的。
可訪問(wèn)的富Internet應(yīng)用程序
HTML5語(yǔ)義標(biāo)簽的使用使網(wǎng)站搜索引擎和屏幕閱讀器友好,如果正確使用語(yǔ)義標(biāo)簽,視障人士可以使用屏幕閱讀器從網(wǎng)頁(yè)中獲取信息。
結(jié)論
在這篇博客中,我們講述了HTML的所有重要用途,它通常是Web開(kāi)發(fā)人員學(xué)習(xí)的第一語(yǔ)言,所以,如果你想學(xué)習(xí)Web編程并且害怕學(xué)習(xí)HTML的難度,你不必?fù)?dān)心,HTML非常容易學(xué)習(xí)。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。