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 国产精品不卡视频,国产视频成人,免费**毛片在线播放

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          舔狗福利!這個Python爬蟲神器太爽了,自動下載妹

          舔狗福利!這個Python爬蟲神器太爽了,自動下載妹子圖片

          于Python的自動化測試或者是爬蟲開發(fā)者來說,對于selenium庫想必都聽說過,selenium本身是作為Web應用測試工具,但是作為爬蟲工具也有很廣泛的用途。

          Selenium雖然好用,但是它大多數的時刻都是和Web的網頁元素之間打交道,需要用到html網頁的標簽,CSS選擇器等知識

          雖然自動化程度較高,但是使用起來仍然不是很方便,上手也不是很容易。今天,小編就帶領大家來認識一款基于Selenium的庫——Helium。

          Helium庫簡介

          Helium庫是基于Selenium基礎上的更加高級的Web自動化工具,它能夠通過網頁上可以看見的標簽和名稱等信息來進行用戶交互。我們可以用來進行點擊鍵盤的按鍵、點擊標簽、滾動鼠標等一系列的鼠標和鍵盤操作。

          而Helium的安裝也是非常的簡單,如下圖所示:

          大家只需要pip install Helium即可安裝,但是需要注意的是,普通的安裝方式會非常的慢,因此小編利用了清華鏡像來幫助下載,提升下載的速度。

          安裝之后,我們就可以來使用Helium了,首先我們利用Helium來登錄一下GitHub賬號。其效果如下圖所示:

          上圖中程序跳轉到GitHub的登錄界面,然后輸入用戶的名字和用戶的密碼,最后點擊登錄即可登錄上GitHub的賬號,過程很簡單,我們來看一下程序是如何編寫的吧。

          上述的程序僅有短短的五行,而且每行的意義都非常的清晰和明確。

          • 首先,第一行是啟動瀏覽器;
          • 然后,我們直接跳轉到GitHub賬號的登錄頁面,大家也可以直接將第一第二句程序合并成為go_to("https://github.com/login")。
          • 第三句程序,是向GitHub登錄界面中輸入用戶名或者是郵箱的賬號,注意,這里的into代表的是我們往哪里寫,程序可以直接根據網頁上的名字進行定位,直接定位到"Username or email address“的標簽下,對于程序編寫者來說更加便捷。不需要再去尋找對應的元素;
          • 第四句是向里面寫入密碼;
          • 最后第五句,直接點擊”Sign in“

          程序便可以直接登錄。下圖是對應的selenium登錄GitHub的程序。

          對比之下,可以看出,Helium程序是非常的簡潔而且對用戶非常的友好。讓大家非常清楚每一步的操作。


          爬取妹子圖片

          接下來,為了更好地展示Helium的強大,小編利用Helium來自動化抓取百度圖片中的妹子圖片,看看我們是如何實現的吧,我們首先來介紹一下程序,并按照我們想下載百度圖片的思路來看待程序。

          上述程序中,左邊是我們的程序索引,右面是我們的程序,我們可以按照我們提取百度圖片的思路來看待程序,小編分步解釋每一行代碼:

          • 打開百度圖片的網址;
          • 輸入“小姐姐”的關鍵詞搜索;
          • 點擊enter進行搜索;
          • 對于每張圖片,Helium找到該元素;
          • 點擊圖片,進入圖片的子網頁;
          • 點擊下載該圖片;
          • 程序睡眠兩秒,用來下載圖片;
          • 跳轉回子網頁;
          • 關閉子網頁;
          • 跳轉回子頁面;
          • 程序睡眠兩秒;

          上述的每一行對應著程序中每條語句的含義,這樣理解起來是不是非常的方便了呢。

          說實話,小編以前也用過Selenium但是總是覺得太重,使用成本很高,現在有了這個神器,做了一些封裝,幫我們省了很多事情,Python就是這么有趣,內個還等啥,有興趣的小伙伴趕緊試試吧。順便轉發(fā)+評論,小編將持續(xù)分享Python干貨知識!

          下截圖:

          點擊文件選擇框,我們不妨選一張尺寸比較大的圖片,例如下面這種2M多的釣魚收獲照:

          于是圖片歘歘歘地傳上去了:

          此時我們點擊最終上傳完畢的圖片地址,會發(fā)現原來2M多3000多像素寬的圖片被限制為400像素寬了:

          保存到本地會發(fā)現圖片尺寸已經變成只有70K了:

          以上就是圖片前端壓縮并上傳demo的完整演示。

          二、實現原理

          要想使用JS實現圖片的壓縮效果,原理其實很簡單,核心API就是使用canvas的drawImage()方法。

          Canvas本質上就是一張位圖,而drawImage()方法可以把一張大大的圖片繪制在小小的Canvas畫布上,不久等同于圖片尺寸壓縮了?

          對于本案例的壓縮,使用的5個參數的API方法:

          context.drawImage(img, dx, dy, dWidth, dHeight);復制代碼
          

          各參數具體含義可以參見“Canvas API中文文檔-drawImage”,這里不展開。

          舉例:

          一張圖片(假設圖片對象是img)的原始尺寸是4000*3000,現在需要把尺寸限制為400*300大小,很簡單,原理如下代碼示意:

          var canvas=document.createElement('canvas');
          var context=canvas.getContext('2d');
          canvas.width=400;
          canvas.height=300;
          // 核心JS就這個
          context.drawImage(img,0,0,400,300);復制代碼
          

          把大圖片畫在一張小畫布上,壓縮就這么實現了,是不是簡單的有點超乎想象。

          三、如果想要上傳或下載?

          如果想要上傳圖片或者下載圖片,可以使用canvas.toDataURL()或者canvas.toBlob()方法先進行轉換。

          1. canvas.toDataURL()

          語法如下:canvas.toDataURL(mimeType, qualityArgument)復制代碼
          

          可以把畫布轉換成base64格式信息圖像信息,純字符的圖片表示法。

          其中:

          mimeType表示canvas導出來的base64圖片的類型,默認是png格式,也即是默認值是'image/png',我們也可以指定為jpg格式'image/jpeg'或者webp等格式。file對象中的file.type就是文件的mimeType類型,在轉換時候正好可以直接拿來用(如果有file對象)。

          qualityArgument表示導出的圖片質量,只要導出為jpg和webp格式的時候此參數才有效果,默認值是0.92,是一個比較合理的圖片質量輸出參數,通常情況下,我們無需再設定。

          更多關于toDataURL()方法的信息可以參見“Canvas API中文文檔-toDataURL()”。

          2. canvas.toBlob()方法

          語法如下:canvas.toBlob(callback, mimeType, qualityArgument)復制代碼
          

          可以把畫布轉換成Blob文件,通常用在文件上傳中,因為是二進制的,對后端更加友好。

          和toDataURL()方法相比,toBlob()方法是異步的,因此多了個callback參數,這個callback回調方法默認的第一個參數就是轉換好的blob文件信息,本文一開始的demo案例中的文件上傳就是將canvas圖片轉換成二進制的blob文件,然后再ajax上傳的,代碼如下:

          // canvas轉為blob并上傳
          canvas.toBlob(function (blob) {
           // 圖片ajax上傳
           var xhr=new XMLHttpRequest();
           // 開始上傳
           xhr.open("POST", 'upload.php', true);
           xhr.send(blob); 
          });復制代碼
          

          更多關于toBlob()方法的信息可以參見“Canvas API中文文檔-toBlob()”。

          一旦有了可傳輸的圖像數據,上傳下載就好實現了。例如下載前端壓縮好的圖片,可以參考我上一篇在掘金發(fā)布的文章:“純JS生成并下載各種文本文件或圖片”。

          四、總結

          經過“圖片→canvas壓縮→圖片”三步曲,我們完成了圖片前端壓縮功能。

          作者:張鑫旭

          鏈接:https://juejin.im/post/5bec3c6cf265da614312a0fa

          來源:掘金

          著作權歸作者所有。商業(yè)轉載請聯系作者獲得授權,非商業(yè)轉載請注明出處。

          Query文件下載方法及引入HTML語法

          jQuery下載

          去jQuery網站下載文件包,點擊主頁的“Download”之后,進入下載頁面,可以選擇production版本的進行下載,但是點擊進去之后,瀏覽器并不會直接下載相關的文件,而是跳轉到一個“密密麻麻”都是jQuery代碼的頁面,仔細查看瀏覽器地址欄中的url便可知,該頁面其實就是jQuery的min版的文件,可以使用下面這種方法,下載jQuery文件:

          右鍵點擊該頁面,在彈出的菜單中選擇另存為,在另存為的菜單中默認保存的后綴名為".js",如果不是,可以在下拉菜單中選擇該類型的選項,然后保存即可下載jQuery文件了。鄙人下載的是最新版本的jquery-3.7.1.min.js

          提示:jQuery的文件的擴展名是".js",下載完之后,無需安裝,使用直接引入即可使用jQuery。

          jQuery引入HTML的方法

          jQuery是js文件,引入HTML的方法與引入JavaScript文件的方法一樣,在HTML的head標簽內使用script標簽引入,比如:

          <script src="../../static/js/jquery-3.7.1.min.js"></script>

          CDN引入jQuery的方法

          如果不想下載jQuery,也可以通過CDN的方式,將jQuery引入HTML,比如:

          <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js" rel="external nofollow" >
          </script>

          jQuery引入實例代碼,及在線編輯器

          下面實例將通過一個點擊按鈕添加文本的實例來展示jQuery的用法,如下:

          <script src="../../static/js/jquery-3.7.1.min.js"></script>
          <p id="p1"></p>
          <button id="btn" class="btn">jQuery</button>
          
          <script>
            $('#btn').click(function(){
              $('#p1').text("jQuery添加段落文本");
            })
          </script>

          來源:笨鳥工具-璞玉天成,大器晚成

          原文:jQuery下載及引入HTML | jQuery教程

          免責聲明:內容僅供參考,不保證正確性!


          主站蜘蛛池模板: 三上悠亚国产精品一区| 亚欧色一区W666天堂| 无码精品尤物一区二区三区| 人妻互换精品一区二区| 久久国产免费一区二区三区| 日本精品啪啪一区二区三区| 日本一区频道在线视频| 亚洲一区二区影院| 久久精品免费一区二区三区| 一区二区免费国产在线观看| 国产精品亚洲综合一区在线观看 | 亚洲性无码一区二区三区| 国产精品区AV一区二区| 濑亚美莉在线视频一区| 精品动漫一区二区无遮挡| 精品一区二区三区波多野结衣| 亚洲性日韩精品一区二区三区| 国产精品va一区二区三区| 国内精品视频一区二区三区 | 精品国产一区二区三区AV性色 | 久久亚洲中文字幕精品一区| 夜色阁亚洲一区二区三区| 国产成人精品一区二三区 | 日本成人一区二区三区| 在线观看免费视频一区| 手机看片一区二区| 成人无码AV一区二区| 日本免费一区二区三区四区五六区 | 一色一伦一区二区三区| 亚洲码欧美码一区二区三区| 一区二区无码免费视频网站| 欧美亚洲精品一区二区| 国产精品亚洲一区二区无码 | 国产在线精品一区二区高清不卡| 国产精品毛片一区二区| 国产无线乱码一区二三区| 蜜桃臀无码内射一区二区三区| 久久精品亚洲一区二区三区浴池 | 日本精品一区二区三区视频| 国产伦一区二区三区免费| 国产AV国片精品一区二区|