整合營(yíng)銷服務(wù)商

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

          免費(fèi)咨詢熱線:

          web實(shí)戰(zhàn)開發(fā)-巧用Jsoup提取網(wǎng)頁的有效信息

          web實(shí)戰(zhàn)開發(fā)-巧用Jsoup提取網(wǎng)頁的有效信息

          言:

          關(guān)于Jsoup的使用, 使用的時(shí)間也算蠻長(zhǎng)了, 真心覺得這東西很牛掰. 對(duì)于從頁面中提取信息的應(yīng)用需求, Java版XPath的解決方案, 讓人非常的失望, 本質(zhì)原因是XPath需要嚴(yán)格的XML規(guī)范的文本內(nèi)容, 而網(wǎng)頁內(nèi)容本身, 千變?nèi)f化, 其標(biāo)簽體系并不嚴(yán)格, 比如標(biāo)簽沒完全配對(duì), 缺少閉合標(biāo)簽等等. 沒有一定的容錯(cuò)性, 導(dǎo)致XPath在頁面處理的方案競(jìng)爭(zhēng)中, 無情地被pass掉了, T_T.


          Jsoup采用css selector機(jī)制去定位/操作DOM樹的元素, 快速而語法簡(jiǎn)潔, 對(duì)網(wǎng)頁內(nèi)容的有效信息提取, 去噪音, 簡(jiǎn)直就是大利器. 文章將講述下jsoup的常見應(yīng)用場(chǎng)景, 并簡(jiǎn)單介紹下如何使用?

          DOM樹和CSS選擇器:

          網(wǎng)頁本質(zhì)是一棵DOM樹(文檔對(duì)象模型), 可以基于此, 對(duì)該DOM樹進(jìn)行操作, 增刪節(jié)點(diǎn), 修改節(jié)點(diǎn)屬性, 從而到達(dá)改變網(wǎng)頁的內(nèi)容的效果.


          CSS選擇器(css selector), 用于快速查詢相應(yīng)的節(jié)點(diǎn). 和XPath解決方案的不同在于, 其談化了路徑概念, 而且語法更加簡(jiǎn)潔. 對(duì)于熟悉jquery的用戶而言, 基于上是零成本技能遷移.

          CSS選擇器, 包含元素選擇器, 類選擇器, id選擇器, 偽類選擇器等, 可以組合使用.

          舉個(gè)例子:

          <html>

          <body>

          <div class="container">

          <img id="img_id_0" src="" alt="圖片A"/>

          <img id="img_id_1" src="" alt="圖片B"/>

          </div>

          </body>

          </html>

          想要獲取圖片B的元素, 則使用表達(dá)式: img#img_id_1 即可.

          想要獲取div的整個(gè)內(nèi)容, 則使用表示是: div.container 即可.


          網(wǎng)頁信息的提取策略:

          以新浪新聞稿頁面為例, 標(biāo)題為: 女人一生最怕什么?


          其正文內(nèi)容, 可以通過Google Chrome的控制臺(tái)去快速定位.


          其通過chrome的控制臺(tái), 測(cè)試css選擇器:section.j_article_main, 是唯一的, 而且覆蓋了文章正文內(nèi)容.

          因此簡(jiǎn)單的通過, 下載該網(wǎng)頁內(nèi)容, 然后使用jsoup處理一下, 即可達(dá)到目標(biāo).

          String url=".....";

          String html=".....";

          Document doc=Jsoup.parse(html, url);

          Element articleEle=doc.select("section.j_article_main").first();

          String text=articleEle.text();

          就這樣簡(jiǎn)單的, 把正文的文本內(nèi)容給提取出來了, 如果你收集新聞網(wǎng)頁用于搜索引擎, 那這種處理方式是最好的, 既獲取到有效信息, 又排除了各類噪音信息(廣告, 相關(guān)文章推薦, 評(píng)論, 公共導(dǎo)航鏈接).

          鏈接提取:

          網(wǎng)頁里面的鏈接元素, 可能是絕對(duì)路徑的鏈接, 也可能是相對(duì)路徑的鏈接.

          相對(duì)路徑的鏈接, 是需要轉(zhuǎn)化為絕對(duì)路徑, 才有它的意義存在, jsoup可以快速幫助我們事先這個(gè)目標(biāo), 而免去了我們的自己拼裝過程.

          String url=".....";

          String html=".....";

          Document doc=Jsoup.parse(html, url);

          Elements as=doc.select("a[href]");

          for ( Element a : as ) {

          a.attr("href", a.attr("abs:href"));

          }

          注: 函數(shù)attr("abs:href")用于獲取絕對(duì)url路徑, 這幾行代碼, 把相對(duì)路徑, 全都轉(zhuǎn)換為絕對(duì)路徑的鏈接了.

          后記:

          其實(shí)jsoup非常的強(qiáng)大, 一方面在于它的簡(jiǎn)潔性, 另一方面還是它強(qiáng)大的容錯(cuò)能力, 對(duì)于互聯(lián)網(wǎng)而言, 不健全的網(wǎng)頁是在太多了, 因此能夠兼容各種網(wǎng)頁格式, 并從中獲取到有效的信息, 實(shí)在是難能可貴, 就憑這一點(diǎn), 真心給jsoup點(diǎn)個(gè)贊, 哈哈.

          ndroid高階開發(fā)專欄

          Java高級(jí)開發(fā)進(jìn)階專欄

          TCP連接的三次握手和四次揮手

          一文搞懂DNS域名解析的詳細(xì)流程

          高并發(fā)與負(fù)載均衡:Nginx的反向代理和負(fù)載均衡

          一文搞懂TCP/IP協(xié)議及Web基礎(chǔ)知識(shí)

          一文搞懂HTTP協(xié)議的核心知識(shí)點(diǎn)

          一文掌握 HTTP協(xié)議報(bào)文 包含的信息類型

          一文搞懂HTTP協(xié)議 返回結(jié)果的HTTP狀態(tài)碼

          一文搞懂 HTTP協(xié)議的報(bào)文首部


          作為網(wǎng)絡(luò)專欄的開篇導(dǎo)文,本文概況介紹下經(jīng)典案例:從輸入一個(gè)網(wǎng)址到瀏覽器顯示頁面的全過程。

          步驟概要介紹如下:

          • 1、輸入網(wǎng)址
          • 2、DNS解析獲取域名對(duì)應(yīng)的IP地址
          • 3、建立TCP連接
          • 4、web瀏覽器向web服務(wù)器發(fā)送HTTP請(qǐng)求
          • 5、服務(wù)器的永久重定向響應(yīng)
          • 6、瀏覽器跟蹤重定向地址
          • 7、web服務(wù)器做出應(yīng)答
          • 8、瀏覽器顯示 HTML
          • 9、瀏覽器發(fā)送請(qǐng)求獲取其他嵌入在 HTML 中的資源
          • 10、web服務(wù)器關(guān)閉TCP連接

          1、輸入網(wǎng)址

          當(dāng)在瀏覽器中輸入網(wǎng)址時(shí),瀏覽器其實(shí)就已在智能匹配 url 了,他會(huì)從歷史記錄,書簽等地方,找到已經(jīng)輸入的字符串可能對(duì)應(yīng)的 url,然后給出智能提示,讓你可以補(bǔ)全url地址。

          對(duì)于 google的chrome 的瀏覽器,他甚至?xí)苯訌木彺嬷邪丫W(wǎng)頁展示出來,就是說,你還沒有按下 enter,頁面就出來了。


          2、DNS解析獲取域名對(duì)應(yīng)的IP地址

          請(qǐng)求一旦發(fā)起,瀏覽器首先要做的事情就是解析這個(gè)域名。

          • 1、一般來說,瀏覽器會(huì)首先查看本地硬盤的 hosts 文件,看看其中有沒有和這個(gè)域名對(duì)應(yīng)的規(guī)則,如果有的話就直接使用 hosts 文件里面的 ip 地址。
          • 2、如果在本地的 hosts 文件沒有能夠找到對(duì)應(yīng)的 ip 地址,瀏覽器會(huì)發(fā)出一個(gè) DNS請(qǐng)求到本地DNS服務(wù)器 。本地DNS服務(wù)器一般都是你的網(wǎng)絡(luò)接入服務(wù)器商提供,比如中國(guó)電信,中國(guó)移動(dòng)。
          • 3、查詢你輸入的網(wǎng)址的DNS請(qǐng)求到達(dá)本地DNS服務(wù)器之后,本地DNS服務(wù)器會(huì)首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結(jié)果,此過程是遞歸的方式進(jìn)行查詢。如果沒有,本地DNS服務(wù)器還要向DNS根服務(wù)器進(jìn)行查詢。
          • 4、根DNS服務(wù)器沒有記錄具體的域名和IP地址的對(duì)應(yīng)關(guān)系,而是告訴本地DNS服務(wù)器,你可以到域服務(wù)器上去繼續(xù)查詢,并給出域服務(wù)器的地址。這種過程是迭代的過程。
          • 5、本地DNS服務(wù)器繼續(xù)向域服務(wù)器發(fā)出請(qǐng)求,在這個(gè)例子中,請(qǐng)求的對(duì)象是.com域服務(wù)器。.com域服務(wù)器收到請(qǐng)求之后,也不會(huì)直接返回域名和IP地址的對(duì)應(yīng)關(guān)系,而是告訴本地DNS服務(wù)器,你的域名的解析服務(wù)器的地址。
          • 6、最后,本地DNS服務(wù)器向域名的解析服務(wù)器發(fā)出請(qǐng)求,這時(shí)就能收到一個(gè)域名和IP地址對(duì)應(yīng)關(guān)系,本地DNS服務(wù)器不僅要把IP地址返回給用戶電腦,還要把這個(gè)對(duì)應(yīng)關(guān)系保存在緩存中,以備下次別的用戶查詢時(shí),可以直接返回結(jié)果,加快網(wǎng)絡(luò)訪問。


          3、建立TCP連接

          在HTTP工作開始之前,web瀏覽器首先要通過網(wǎng)絡(luò)與web服務(wù)器建立連接,該連接是通過TCP來完成的。

          PS1:為什么要先建立TCP呢?

          因?yàn)镠TTP是比TCP更高層次的應(yīng)用層協(xié)議,根據(jù)規(guī)則,只有低層協(xié)議建立之后才能進(jìn)行更高層次協(xié)議的連接,因此要先建立TCP連接,一般TCP連接的端口號(hào)是80

          PS2:擴(kuò)展知識(shí)點(diǎn):

          TCP連接的三次握手和斷開的四次揮手 參照站內(nèi)文章:TCP 三次握手和四次揮手


          4、web瀏覽器向web服務(wù)器發(fā)送HTTP請(qǐng)求

          建立了TCP連接之后,web瀏覽器就會(huì)向web服務(wù)器發(fā)起一個(gè)http請(qǐng)求。

          一個(gè)典型的 http request header 一般需要包括請(qǐng)求的方法,例如 GET 或者 POST 等,不常用的還有 PUT 和 DELETE 、HEAD、OPTION以及 TRACE 方法,一般的瀏覽器只能發(fā)起 GET 或者 POST 請(qǐng)求。

          客戶端向服務(wù)器發(fā)起http請(qǐng)求的時(shí)候,會(huì)有一些請(qǐng)求信息,請(qǐng)求信息包含三個(gè)部分:

          • 請(qǐng)求方法URI協(xié)議/版本
          • 請(qǐng)求頭(Request Header)
          • 請(qǐng)求正文:

          下面是一個(gè)完整的HTTP請(qǐng)求例子:

          GET/sample.jspHTTP/1.1
          Accept:image/gif.image/jpeg,*/*
          Accept-Language:zh-cn
          Connection:Keep-Alive
          Host:localhost
          User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
          Accept-Encoding:gzip,deflate
          
          username=jinqiao&password=1234

          4.1、請(qǐng)求行

          請(qǐng)求的第一行是“方法URL議/版本”:GET/sample.jsp HTTP/1.1

          4.2、請(qǐng)求頭(Request Header)

          請(qǐng)求頭包含許多有關(guān)的客戶端環(huán)境和請(qǐng)求正文的有用信息。例如,請(qǐng)求頭可以聲明瀏覽器所用的語言,請(qǐng)求正文的長(zhǎng)度等。

          Accept:image/gif.image/jpeg.*/*
          Accept-Language:zh-cn
          Connection:Keep-Alive
          Host:localhost
          User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
          Accept-Encoding:gzip,deflate.
          

          4.3、請(qǐng)求正文

          請(qǐng)求頭和請(qǐng)求正文之間是一個(gè)空行,這個(gè)行非常重要,它表示請(qǐng)求頭已經(jīng)結(jié)束,接下來的是請(qǐng)求正文。請(qǐng)求正文中可以包含客戶提交的查詢字符串信息:

          username=jinqiao&password=1234

          5、服務(wù)器的永久重定向響應(yīng)

          服務(wù)器給瀏覽器響應(yīng)一個(gè)301永久重定向響應(yīng),這樣瀏覽器就會(huì)訪問“http://www.google.com/” 而非“http://google.com/”。

          為什么服務(wù)器一定要重定向而不是直接發(fā)送用戶想看的網(wǎng)頁內(nèi)容呢?其中一個(gè)原因跟搜索引擎排名有關(guān)。如果一個(gè)頁面有兩個(gè)地址,就像http://www.yy.com/和http://yy.com/,搜索引擎會(huì)認(rèn)為它們是兩個(gè)網(wǎng)站,結(jié)果造成每個(gè)搜索鏈接都減少從而降低排名。而搜索引擎知道301永久重定向是什么意思,這樣就會(huì)把訪問帶www的和不帶www的地址歸到同一個(gè)網(wǎng)站排名下。還有就是用不同的地址會(huì)造成緩存友好性變差,當(dāng)一個(gè)頁面有好幾個(gè)名字時(shí),它可能會(huì)在緩存里出現(xiàn)好幾次。

          重定向原因:

          • 1、網(wǎng)站調(diào)整(如改變網(wǎng)頁目錄結(jié)構(gòu));
          • 2、網(wǎng)頁被移到一個(gè)新地址;
          • 3、網(wǎng)頁擴(kuò)展名改變(如應(yīng)用需要把.php改成.Html或.shtml)。

          這種情況下,如果不做重定向,則用戶收藏夾或搜索引擎數(shù)據(jù)庫中舊地址只能讓訪問客戶得到一個(gè)404頁面錯(cuò)誤信息,訪問流量白白喪失;再者某些注冊(cè)了多個(gè)域名的網(wǎng)站,也需要通過重定向讓訪問這些域名的用戶自動(dòng)跳轉(zhuǎn)到主站點(diǎn)等。


          6、瀏覽器跟蹤重定向地址

          現(xiàn)在瀏覽器知道了 "http://www.google.com/"才是要訪問的正確地址,所以它會(huì)發(fā)送另一個(gè)http請(qǐng)求。這里沒有啥好說的


          7、web服務(wù)器做出應(yīng)答

          經(jīng)過前面的步驟,服務(wù)器收到了我們的請(qǐng)求,也處理我們的請(qǐng)求,到這一步,它會(huì)把它的處理結(jié)果返回,也就是返回一個(gè)HTPP響應(yīng)。

          HTTP響應(yīng)與HTTP請(qǐng)求相似,HTTP響應(yīng)也由3個(gè)部分構(gòu)成,分別是:

          • 狀態(tài)行
          • 響應(yīng)頭(Response Header)
          • 響應(yīng)正文
          HTTP/1.1 200 OK
          Date: Sat, 31 Dec 2005 23:59:59 GMT
          Content-Type: text/html;charset=ISO-8859-1
          Content-Length: 122
          
          <html>
          <head>
          <title>http</title>
          </head>
          <body>
          <!-- body goes here -->
          </body>
          </html>

          7.1、狀態(tài)行:

          狀態(tài)行由協(xié)議版本、數(shù)字形式的狀態(tài)代碼、及相應(yīng)的狀態(tài)描述,各元素之間以空格分隔。

          格式: HTTP-Version Status-Code Reason-Phrase CRLF

          例如: HTTP/1.1 200 OK \r\n

          -- 協(xié)議版本:是用http1.0還是其他版本

          -- 狀態(tài)描述:狀態(tài)描述給出了關(guān)于狀態(tài)代碼的簡(jiǎn)短的文字描述。比如狀態(tài)代碼為200時(shí)的描述為 ok

          -- 狀態(tài)代碼:狀態(tài)代碼由三位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類別,且有五種可能取值。

          狀態(tài)代碼具體協(xié)議定義如下:

          1xx:信息性狀態(tài)碼,表示服務(wù)器已接收了客戶端請(qǐng)求,客戶端可繼續(xù)發(fā)送請(qǐng)求。
          100 Continue
          101 Switching Protocols
          
          2xx:成功狀態(tài)碼,表示服務(wù)器已成功接收到請(qǐng)求并進(jìn)行處理。
          200 OK 表示客戶端請(qǐng)求成功
          204 No Content 成功,但不返回任何實(shí)體的主體部分
          206 Partial Content 成功執(zhí)行了一個(gè)范圍(Range)請(qǐng)求
          
          3xx:重定向狀態(tài)碼,表示服務(wù)器要求客戶端重定向。
          301 Moved Permanently 永久性重定向,響應(yīng)報(bào)文的Location首部應(yīng)該有該資源的新URL
          302 Found 臨時(shí)性重定向,響應(yīng)報(bào)文的Location首部給出的URL用來臨時(shí)定位資源
          303 See Other 請(qǐng)求的資源存在著另一個(gè)URI,客戶端應(yīng)使用GET方法定向獲取請(qǐng)求的資源
          304 Not Modified 服務(wù)器內(nèi)容沒有更新,可以直接讀取瀏覽器緩存
          307 Temporary Redirect 臨時(shí)重定向。與302 Found含義一樣。302禁止POST變換為GET,但實(shí)際使用時(shí)并不一定,307則更多瀏覽器可能會(huì)遵循這一標(biāo)準(zhǔn),但也依賴于瀏覽器具體實(shí)現(xiàn)
          
          4xx:客戶端錯(cuò)誤狀態(tài)碼,表示客戶端的請(qǐng)求有非法內(nèi)容。
          400 Bad Request 表示客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解
          401 Unauthonzed 表示請(qǐng)求未經(jīng)授權(quán),該狀態(tài)代碼必須與 WWW-Authenticate 報(bào)頭域一起使用
          403 Forbidden 表示服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù),通常會(huì)在響應(yīng)正文中給出不提供服務(wù)的原因
          404 Not Found 請(qǐng)求的資源不存在,例如,輸入了錯(cuò)誤的URL
          
          5xx:服務(wù)器錯(cuò)誤狀態(tài)碼,表示服務(wù)器未能正常處理客戶端的請(qǐng)求而出現(xiàn)意外錯(cuò)誤。
          500 Internel Server Error 表示服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤,導(dǎo)致無法完成客戶端的請(qǐng)求
          503 Service Unavailable 表示服務(wù)器當(dāng)前不能夠處理客戶端的請(qǐng)求,在一段時(shí)間之后,服務(wù)器可能會(huì)恢復(fù)正常

          7.2、響應(yīng)頭:

          響應(yīng)頭部:由關(guān)鍵字/值對(duì)組成,每行一對(duì),關(guān)鍵字和值用英文冒號(hào)":"分隔。

          Date: Sat, 31 Dec 2005 23:59:59 GMT
          Content-Type: text/html;charset=ISO-8859-1
          Content-Length: 122

          典型的響應(yīng)頭字段:

          7.3、響應(yīng)正文

          包含著我們需要的一些具體信息,比如cookie,html,image,后端返回的請(qǐng)求數(shù)據(jù)等等。這里需要注意,響應(yīng)正文和響應(yīng)頭之間有一行空格,表示響應(yīng)頭的信息到空格為止。


          8、瀏覽器顯示 HTML

          在瀏覽器沒有完整接受全部HTML文檔時(shí),它就已經(jīng)開始顯示這個(gè)頁面了,瀏覽器是如何把頁面呈現(xiàn)在屏幕上的呢?

          不同瀏覽器可能解析的過程不太一樣,這里我們只介紹webkit的渲染過程。下圖對(duì)應(yīng)的就是WebKit渲染的過程,這個(gè)過程包括:

          解析html以構(gòu)建dom樹 -> 構(gòu)建render樹 -> 布局render樹 -> 繪制render樹:


          9、瀏覽器發(fā)送請(qǐng)求獲取嵌入在 HTML 中的資源(如圖片、音頻、視頻、CSS、JS等等)

          其實(shí)這個(gè)步驟可以并列在步驟8中,在瀏覽器顯示HTML時(shí),它會(huì)注意到需要獲取其他地址內(nèi)容的標(biāo)簽。這時(shí),瀏覽器會(huì)發(fā)送一個(gè)獲取請(qǐng)求來重新獲得這些文件。比如我要獲取外圖片,CSS,JS文件等,類似于下面的鏈接:

          圖片:http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gif

          CSS式樣表:http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.css

          JavaScript 文件:http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.js

          這些地址都要經(jīng)歷一個(gè)和HTML讀取類似的過程。所以瀏覽器會(huì)在DNS中查找這些域名,發(fā)送請(qǐng)求,重定向等等...

          不像動(dòng)態(tài)頁面,靜態(tài)文件會(huì)允許瀏覽器對(duì)其進(jìn)行緩存。有的文件可能會(huì)不需要與服務(wù)器通訊,而從緩存中直接讀取,或者可以放到CDN中


          10、web服務(wù)器關(guān)閉TCP連接

          一般情況下,一旦web服務(wù)器向?yàn)g覽器發(fā)送了請(qǐng)求數(shù)據(jù)后,它就要關(guān)閉TCP連接,然后如果瀏覽器或者服務(wù)器在其頭信息加入這行代碼:

          connection:keep-alive

          這樣TCP連接將依然保持打開狀態(tài),瀏覽器可以繼續(xù)通過相同的連接發(fā)送請(qǐng)求,保持連接,節(jié)省了為每個(gè)請(qǐng)求建立新連接所需要的的事件,同時(shí)節(jié)省了寬帶

          實(shí)際上,在HTTP 1.1 版本的新特性中有一點(diǎn)是:默認(rèn)持久連接節(jié)省通信量,只要客戶端、服務(wù)端任意一端沒有明確斷開TCP連接,可以發(fā)送多次HTTP請(qǐng)求。



          版權(quán)說明:摘錄到部分網(wǎng)絡(luò)資源,如存在版權(quán)問題,請(qǐng)私信聯(lián)系處理,謝謝!


          關(guān)注頭條號(hào)“編程家園”,后續(xù)陸續(xù)會(huì)有更多技術(shù)領(lǐng)域(包括并不限于Android進(jìn)階、Java進(jìn)階、Kotlin、網(wǎng)絡(luò)、Flutter、Python等),以及架構(gòu)、職業(yè)規(guī)劃、職業(yè)思考等方面資料的免費(fèi)分享,期待您的關(guān)注!

          天辦公用戶都會(huì)通過網(wǎng)頁獲取不少信息,但是長(zhǎng)時(shí)間面對(duì)電腦屏幕也會(huì)造成視覺上的疲勞感。因此不少用戶改用收聽的方式來獲取信息,但并不是所有的信息都可以通過這種方式進(jìn)行獲取,比如網(wǎng)頁中的內(nèi)容就是如此。其實(shí)我們可以想方法將網(wǎng)頁中的內(nèi)容閱讀出來,這樣用戶通過耳朵就可以獲取需要的信息內(nèi)容。

          在閱讀模式中聆聽內(nèi)容

          當(dāng)然通過網(wǎng)頁瀏覽器自身的功能是無法完成這樣的操作的,不過通過安裝一個(gè)網(wǎng)頁瀏覽器的功能擴(kuò)展插件就可以很方便地解決了。如果用戶使用的是谷歌瀏覽器,或者是在其基礎(chǔ)上開發(fā)的360極速瀏覽器、百度瀏覽器、QQ瀏覽器等,可以分別通過它們的應(yīng)用商店安裝一款名為 Clearly的功能擴(kuò)展插件。安裝完成以后就可以在工具欄中看到該擴(kuò)展插件的圖標(biāo)。

          以后用戶要想對(duì)網(wǎng)頁中的內(nèi)容進(jìn)行閱讀操作時(shí),首先點(diǎn)擊工具欄中的擴(kuò)展圖標(biāo)“Active Clearly”,或者在網(wǎng)頁正文上點(diǎn)擊鼠標(biāo)右鍵,選擇菜單中的“Toggle Clearly”命令,這樣就會(huì)將當(dāng)前的頁面切換到閱讀模式的狀態(tài)。這時(shí)在網(wǎng)頁的右側(cè)可以看到一排工具欄,點(diǎn)擊工具欄中的小喇叭按鈕,就可以對(duì)當(dāng)前頁面的整個(gè)內(nèi)容進(jìn)行閱讀操作,這樣用戶就能快速有效地獲取網(wǎng)頁中的信息內(nèi)容。如果用戶想讓功能擴(kuò)展插件停止閱讀網(wǎng)頁內(nèi)容,只需要點(diǎn)擊工具欄中的關(guān)閉按鈕退出閱讀模式即可。

          小提示:該功能擴(kuò)展插件會(huì)將網(wǎng)頁在閱讀模式下分為三個(gè)部分,通過網(wǎng)頁左側(cè)的導(dǎo)航欄可以快速跳轉(zhuǎn)到網(wǎng)頁的某一個(gè)部分。而通過右側(cè)的工具欄可以對(duì)網(wǎng)頁中的文字大小、顏色、字體、背景等信息進(jìn)行設(shè)置。

          根據(jù)需要調(diào)整參數(shù)信息

          雖然 Clearly這一功能擴(kuò)展插件使用起來非常簡(jiǎn)單,但是它也有不足之處。首先它不支持火狐瀏覽器,另外使用它只能對(duì)整個(gè)頁面的內(nèi)容進(jìn)行閱讀,而不能對(duì)用戶選取的部分內(nèi)容進(jìn)行閱讀。如果用戶的要求比較高的話,那么還可以考慮安裝另外一款名為Read Aloud的功能擴(kuò)展插件。

          以后當(dāng)用戶想要對(duì)網(wǎng)頁中的內(nèi)容進(jìn)行閱讀時(shí),直接點(diǎn)擊工具欄中的擴(kuò)展圖標(biāo)。這時(shí)會(huì)彈出一個(gè)對(duì)話框窗口,在其中會(huì)看到提取出的網(wǎng)頁文字信息。點(diǎn)擊對(duì)話框窗口中的播放按鈕,就能對(duì)其中的文字信息進(jìn)行閱讀(圖1)。用戶也可以通過鼠標(biāo)選中要進(jìn)行閱讀的部分文字,然后再點(diǎn)擊該功能擴(kuò)展圖標(biāo)進(jìn)行操作即可。此外,在對(duì)話框窗口中用戶還可以對(duì)字體的大小進(jìn)行調(diào)整,以及對(duì)窗口的大小進(jìn)行調(diào)整等操作。

          如果用戶對(duì)Read Aloud的朗讀速度等參數(shù)不滿意的話,還可以在擴(kuò)展圖標(biāo)上點(diǎn)擊鼠標(biāo)右鍵,選擇“選項(xiàng)”命令后,在彈出的對(duì)話框中就可以進(jìn)行相關(guān)的設(shè)置。比如用戶在“朗讀語音”列表中可以選擇不同的朗讀任務(wù),從而更好地滿足不同用戶的聆聽要求。但是需要提醒大家的是,在這個(gè)列表中包括了多種不同語言的朗讀設(shè)置,用戶一定要選擇帶有“Chinese”信息的才能朗讀中文(圖2)。設(shè)置完成以后可以點(diǎn)擊“去測(cè)試”按鈕,這樣就可以對(duì)剛才的設(shè)置進(jìn)行感受,查看是否能滿足自己最終的需要。

          (CP)


          主站蜘蛛池模板: 在线电影一区二区| 亚洲国产精品一区二区第一页| 亚洲Av无码一区二区二三区| 麻豆高清免费国产一区| 久久无码精品一区二区三区| 无码视频一区二区三区| 无码人妻久久一区二区三区免费丨 | 日本无卡码一区二区三区| 无码一区18禁3D| 国产主播一区二区三区在线观看| 一区在线免费观看| 日本一区二区不卡视频| 国产精品成人一区无码| 久久精品动漫一区二区三区| 精品不卡一区中文字幕| 亚洲蜜芽在线精品一区| 亚洲国产成人久久一区WWW | 精品国产乱码一区二区三区| 精品国产一区二区三区久 | 亚洲AV无码一区东京热久久 | 国产福利一区二区三区视频在线 | 久久人做人爽一区二区三区| 男人的天堂亚洲一区二区三区| 中文国产成人精品久久一区| 国产麻豆精品一区二区三区| 亚洲一区二区三区深夜天堂| 日韩电影一区二区三区| 国产精品 视频一区 二区三区| 好吊妞视频一区二区| 亚洲性色精品一区二区在线| 学生妹亚洲一区二区| 中文字幕AV无码一区二区三区| 日韩免费无码一区二区三区| 中文字幕日韩一区| 91久久精品国产免费一区| 无码人妻精品一区二区| 精品人无码一区二区三区 | 无码人妻一区二区三区免费看| 一区二区三区国产| 无码精品国产一区二区三区免费 | 亚洲日韩国产精品第一页一区|