【Day 07】- 第一只网路爬虫要用什麽函式库? (Requests)

前情提要

前一篇文章带大家看了chrome 开发工具的使用,并向下又说明了 Element 、Network 等使用,未来几天撰写爬虫时会经常使用开发工具来定位、分析请求。

开始之前

大家开启网页後,各位的浏览器(客户端 Client)便会向网页(伺服端 Server)进行 HTTP Request method,最常见为 GET、POST (HTTP request method),之後网页(伺服端 Server)会回传一个 HTTP Response, 浏览器(客户端 Client)会将其渲染,变成可读性较高的内容。

今天要带各位写的爬虫便是代替人类进行上述操作。大家放心,Python 的 requests 库包装了各种用法,让大家能够非常方便的使用它。

Requests

Python 中的 Requests 库被誉为没有预设包含在 Python 内的最流行的 Python 库。Requests 是个 HTTP client 函式库,且使用十分便利、优雅。

由於我们的环境都是在 pipenv 下的,这边给出它在 pipenv 下的安装方法,注意要在想要的专案幕录下进行 pipenv 安装,记得加 s。


pipenv install requests

接下来将 pipenv --venv 回传的路径加到 Vscode settings "python.venvPath": "{这边放 pipenv --venv 所得的值(上面请大家记住的)}" 。之後不会特别提醒,若有还没看过环境设定的读者,可以回去看【Day 02】- 网路爬虫环境设定(Python、pipenv、Vscode)

HTTP 常用的 Request Method 是 GET 、 POST,下面针对两个介绍。

Requests GET

安装好 Requests 并确保进入虚拟环境後,我们先来做个简单的 GET 请求。

import requests
url = 'https://www.google.com' #先将欲发出 GET 请求的网址先存在 url
res = requests.get(url) #对 url 发出 GET 请求,并将 Response 包成回传物件存在 res
print(type(res), res) #Output: <class 'requests.models.Response'> <Response [200]>

读者应该有发现 res 是个 requests.models.Response 的物件,且直接印出会是 <Response [200]> 这边解释一下 200 是什麽,简单来说就是 HTTP 的状态码,下面解释一些常见状态码,想了解更多能到这 https://zh.wikipedia.org/zh-tw/HTTP状态码

  • 200 OK:一切正常。
  • 301 Moved Permanently:永久搬家,会重新导向到新 url。
  • 302 Found(Moved Temporarily):暂时移到新位置。
  • 400 Bad Request:明显的用户端错误,服务器无法处理这个 Request。
  • 401 Unauthorized:未授权,请求需携带凭证。
  • 403 Forbidden:没有权限。
  • 404 Not Found:找不到资源。
  • 418 I’m a teapot:我是一个茶壶,不会泡咖啡。(愚人节彩蛋)
  • 500 Internal Server Error:服务器端错误。
  • 502 Bad Gateway:通常是服务器的某个服务没有正确执行。
  • 503 Service Unavailable:服务器临时维护或是快挂了,暂时无法处理请求(临时流量过大)。
  • 504 Gateway Timeout:服务器上的服务没有回应。

GET 是十分直观的请求,不过有时候会携带参数。GET 请求携带参数会直接放在网址(url),位於 ? 後,若有多个则以 & 分隔。

https://www.google.com/search?q=IThome&oq=IThome为例,有两个参数以 &分隔,第一个参数,参数名称为 q ,参数值为 IThome ,第二个参数,参数名称为 oq ,参数值为 IThome

Requests 提供了两种 GET 参数传入的方法。

import requests
# 方法一
url1 = '[https://www.google.com/search?q=IThome&oq=IThome](https://www.google.com/search?q=IThome&oq=IThome)' #直接将参数放到 url
res = requests.get(url1)
print(res.url, res) #Output: https://www.google.com/search?q=IThome&oq=IThome <Response [200]>
# 方法二
url2 = '[https://www.google.com/search](https://www.google.com/search?q=IThome&oq=IThome)'
params = {'q':'IThome','oq':'IThome'}
requests.get(url2, params=params) #Output: https://www.google.com/search?q=IThome&oq=IThome <Response [200]>

Requests POST

POST 常使用的例子是在填表单的时候,读者们填好各种资料後按下送出按钮,有些网页的设计会送出一个 POST 请求,并夹带着各位填入的资料(与 GET 不同,参数会放在 message body 而不是显而易见的网址)。

▲ 登入 IThome 的过程中,用 chrome 开发工具分析登入的 POST 请求,发现其有夹带输入的帐号密码

Python Requests 中 POST 请求可以使用许多不同种类的参数夹带方法,像字典、元组、串列、JSON,这边较推荐使用 JSON 与 字典进行传入。

关於 JSON 它不是个 python 原生的资料型态,需要额外引入,之後会有一篇来单独介绍它,目前只要知道它是个好用的结构就好(类似 Python 中的字典(dict))。

import requests
import json #JSON 非 python 原生型态但为内建,因此直接引入即可

# 使用字典传入 POST 参数
data = {'account':'testOwO', 'password':'testOwO'}
url = 'https://zh.wikipedia.org/'
print(requests.post(url, data=data)) #Output: <Response [200]>

#使用 JSON 传入 POST 参数
data = json.dumps(data)
url = 'https://zh.wikipedia.org/'
print(requests.post(url, data=data)) #Output: <Response [200]>

回应物件使用方法

不管使用 Requests 中 GET 或者是 POST ,都会回传一个回应物件 requests.models.Response ,这个物件也有许多使用方法。

  • res.status_code : 该 HTTP 状态码

  • res.raw : 原始回应物件 urllib3.response.HTTPResponseres.raw.read() 读取。

  • res.content : 回应物件的位元组序列(bytes)型态。

  • res.text : 回应物件的字串(str)型态。

  • res.headers : 回应物件的 headers。

  • res.json() : 回应物件的 JSON 格式,会将回应物件的字串用 JSON encode,不必引入 JSON。

  • res.raise_for_status() : 若请求失败(Status Code 非 200),则抛出错误。

  • res.url : 请求的 url。

  • res.cookies : 请求後的 cookies。

  • res.encoding : 编码格式。

更多参数

Requests 库将许多 requests 请求的参数夹带用法包入了,像是 Requests Headers、Proxy IP 使用、凭证验证、Timeout、Cookies 传入...等等都可以直接当成参数传进像 requests.get [requests.post](http://requests.post) 等函数。

下面解释上述用法例子。

  • Requests Headers

用 Requests 库传入 Requests Headers。

有些网页会挡 User-Agent,若没出现它允许的 User-Agent 就会拒绝存取,绕过方法十分简单,复制 手动存取成功的 User-Agent,之後加到爬虫的 Requests Headers 中即可。

import requests
url = 'https://snake-game-backend.herokuapp.com/Alldatas'
User_Agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
headers = {
	'User-Agent' : User_Agent
}
print(requests.get(url, headers=headers).status_code) #Output: 200
  • Proxy IP 使用

Requests 库可传入 proxy IP 做网路代理服务,读者可以去网路上的免费 proxy list,像是 https://geonode.com/free-proxy-list

import requests
url = 'https://snake-game-backend.herokuapp.com/Alldatas'
proxies = {'http' : 'http://62.33.207.202:80','https' : 'https://101.255.120.222:8080'}
print(requests.get(url, proxies=proxies).status_code) #Output: 200

  • 凭证验证

如欲爬取的网站凭证失效等因素导致 https 失效(not secure),这时用 requests 会因为安全性无法爬取。Requests 可以将凭证验证关闭,让 Requests 成功爬取。

▲凭证失效时的确定页面

import requests
r = requests.get('https://www.google.com', verify = False)
print(r.status_code()) #Output: 200
  • Timeout

Request 传出後,到有回传传入如果超过给定 timeout 时间,会抛出一个例外。

import requests
r = requests.get('https://www.google.com', timeout=0.00000001) #**requests.exceptions.ConnectTimeout...**
  • Cookies 传入

有些网页用户 session 会放在 Cookies,因此只要取得 Cookies ,并跟着 Request 一起送出就可以有用户的 session 了。换句话说就是不需登入,可直接爬取登入後的资讯。

想要查看目前网页下的 Cookies 可以透过开发工具的 Memory 页签找到。这边有个更推荐的扩充套件可以查看/编辑,EditThisCookie

▲用 EditThisCookie 查看/编辑 Cookies

import requests
url = 'https://www.google.com'
cookies = {
	'account' : 'testOwO',
	'password' : 'testOwO'
}
print(requests.get(url, cookies=cookies).status_code) #Output: 200

Your First Crawler

读者可以写下下面的程序,输出 google IThome 结果,但目前这种程度的爬虫还没进行任何的资料清理或锁定,可读性差(dom、HTML)

import requests
url1 = '[https://www.google.com/search?q=IThome&oq=IThome](https://www.google.com/search?q=IThome&oq=IThome)'
res = requests.get(url1)
print(res.text)

'''
<!doctype html><html lang="zh-TW"><head><meta charset="UTF-8"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>IThome - Google 搜寻</title><script nonce="2AVBOLh9+oVr1ju3HhSJZQ==">(function(){
document.documentElement.addEventListener("submit",function(b){var a;if(a=b.target){var c=a.getAttribute("data-submitfalse");a="1"===c||"q"===c&&!a.elements.q.value?!0:!1}else a=!1;a&&(b.preventDefault(),b.stopPropagation())},!0);document.documentElement.addEventListener("click",function(b){var a;a:{for(a=b.target;a&&a!==document.documentElement;a=a.parentElement)if("A"===a.tagName){a="1"===a.getAttribute("data-nohref");break a}a=!1}a&&b.preventDefault()},!0);}).call(this);(function(){
var a=window.performance;window.start=Date.now();a:{var b=window;if(a){var c=a.timing;if(c){var d=c.navigationStart,f=c.responseStart;if(f>d&&f<=window.start){window.start=f;b.wsrt=f-d;break a}}a.now&&(b.wsrt=Math.floor(a.now()))}}window.google=window.google||{};var h=function(g){g&&g.target.setAttribute("data-iml",Date.now())};document.documentElement.addEventListener("load",h,!0);google.rglh=function(){document.documentElement.removeEventListener("load",h,!0)};}).call(this);(function(){window.google.erd={sp:'srp',jsr:0,bv:166};})();(function(){
var c=[],e=0;window.ping=function(b){-1==b.indexOf("&zx")&&(b+="&zx="+Date.now());var a=new Image,d=e++;c[d]=a;a.onerror=a.onload=a.onabort=function(){delete c[d]};a.src=b};}).call(this);</script><style>body{margin:0 auto;max-width:736px;padding:0 8px;}a{color:#1967D2;text-decoration:none;tap-highlight-color:rgba(0,0,0,.10)}a:visited{color:#4B11A8}a:hover{text-decoration:underline}img{border:0}html{font-family:Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:20px;text-size-adjust:100%;color:#3c4043;word-wrap:break-word;background-color:#fff}.bRsWnc{background-color:#fff;border-top:1px solid #dadce0;height:39px;overflow:hidden}.N6RWV{height:51px;overflow-scrolling:touch;overflow-x:auto;overflow-y:hidden}.Uv67qb{box-pack:justify;font-size:12px;line-height:37px;justify-content:space-between;justify-content:space-between}.Uv67qb a,.Uv67qb span{color:#70757a;display:block;flex:none;padding:0 16px;text-align:center;text-transform:uppercase;}span.OXXup{border-bottom:2px solid #4285f4;color:#4285f4;font-weight:bold}a.eZt8xd:visited{color:#70757a}.FElbsf{border-left:1px solid rgba(0,0,0,.12)}header article{overflow:visible}.Pg70bf{height:39px;display:box;display:flex;display:flex;width:100%}.H0PQec{position:relative;flex:1}.sbc{display:flex;width:100%}.Pg70bf input{margin:2px 4px 2px 8px;}.x{width:26px;color:#70757a;font:27px/38px arial, sans-serif;line-height:40px;}#qdClwb{flex:0 0 auto;width:39px;height:39px;border-bottom:0;padding:0;border-top-right-radius:8px;background-color:#1a73e8;border:1px solid #1558d6;background-image:url(data:image/gif;base64,R0lGODdhJAAjAPIHAODr/nCk+MPZ/FmV96zK+/7+/5K5+kqL9iwAAAAAJAAjAEADani63P4wykmbKcQRXDscQAEMXmmeaLQVLCukzyC09AjfeK7v/MAajACLhPMVAgwjsUcEiZa8xgAYrVqv2Kx2iwsIAAABknfBBAKrTE4IcMyot8ur8datqIbQfJdnAfo2WE6BV05wXIiJigkAOw==);}.sc{font-size:16px;position:absolute;top:39px;left:0;right:0;box-shadow:0px 2px 5px rgba(0,0,0,.2);z-index:2;background-color:#fff}.sc>div{padding:10px 10px;padding-left:16px;padding-left:14px;border-top:1px solid #dfe1e5}.scs{background-color:#f8f9fa;}.noHIxc{display:block;font-size:16px;padding:0 0 0 8px;flex:1;height:35px;outline:none;border:none;width:100%;-webkit-tap-highlight-color:rgba(0,0,0,.00);overflow:hidden;}.sbc input[type=text]{background:none}.sml .cOl4Id{display:none}.l{display:none}.sml header{background:none}.sml .l{display:block;padding:0 8px}.sml .l{letter-spacing:-1px;text-align:center;border-radius:2px 0 0 0;font:22px/36px Futura, Arial, sans-serif;font-smoothing:antialiased}.bz1lBb{background:#fff;border-radius:8px 8px 0 0;box-shadow:0 1px 6px rgba(32, 33, 36, 0.18);margin-top:10px}.KP7LCb{border-radius:0 0 8px 8px;box-shadow:0 2px 3px rgba(32, 33, 36, 0.18);margin-bottom:10px;overflow:hidden}.cOl4Id{letter-spacing:-1px;text-align:center;font:22pt Futura, Arial, sans-serif;height:37px;font-smoothing:antialiased;padding:10px 0 5px 0;}.cOl4Id span{display:inline-block}.S591j{height:100%}.V6gwVd{color:#4285f4}.iWkuvd{color:#ea4335}.cDrQ7{color:#fcc934}.ntlR9{color:#34a853}.tJ3Myc{-webkit-transform:rotate(-20deg);position:relative;left:-1px;display:inline-block}footer{text-align:center;margin-top:18px}footer a,footer a:visited,.smiUbb{color:#70757a}.xeDNfc{margin:0 13px}#EOlPnc{margin-top:36px}#EOlPnc>div{margin:20px}.Srfpq{color:#70757a}</style></head><body jsmodel="hspDDf"><header id="hdr"><script nonce="2AVBOLh9+oVr1ju3HhSJZQ==">(function(){
var k=this||self,l=function(){},m=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},n=function(a,b){function c(){}c.prototype=b.prototype;a.l=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.o=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}};var p=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};var q=function(a){return"string"==typeof a.className?a.className:a.getAttribute&&a.getAttribute("class")||""},r=function(a,b){"string"==typeof a.className?a.className=b:a.setAttribute&&a.setAttribute("class",b)},t=function(a,b){a.classList?b=a.classList.contains(b):(a=a.classList?a.classList:q(a).match(/\S+/g)||[],b=0<=p(a,b));return b},w=function(){var a=u,b=v;a.classList?a.classList.remove(b):t(a,b)&&r(a,Array.prototype.filter.call(a.classList?a.classList:q(a).match(/\S+/g)||[],function(c){return c!=
b}).join(" "))};var x;a:{var y=k.navigator;if(y){var z=y.userAgent;if(z){x=z;break a}}x=""};var A=function(a){A[" "](a);return a};A[" "]=l;var B=-1!=x.indexOf("Gecko")&&!(-1!=x.toLowerCase().indexOf("webkit")&&-1==x.indexOf("Edge"))&&!(-1!=x.indexOf("Trident")||-1!=x.indexOf("MSIE"))&&-1==x.indexOf("Edge");var C=function(a,b){this.type=a;this.target=b};C.prototype.g=function(){};var D=function(){if(!k.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});try{k.addEventListener("test",l,b),k.removeEventListener("test",l,b)}catch(c){}return a}();var F=function(a){C.call(this,a?a.type:"");this.relatedTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.h=null;if(a){var b=this.type=a.type,c=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;var d=a.relatedTarget;if(d){if(B){a:{try{A(d.nodeName);var e=!0;break a}catch(f){}e=
!1}e||(d=null)}}else"mouseover"==b?d=a.fromElement:"mouseout"==b&&(d=a.toElement);this.relatedTarget=d;c?(this.clientX=void 0!==c.clientX?c.clientX:c.pageX,this.clientY=void 0!==c.clientY?c.clientY:c.pageY,this.screenX=c.screenX||0,this.screenY=c.screenY||0):(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType="string"===typeof a.pointerType?a.pointerType:E[a.pointerType]||"";this.state=a.state;this.h=a;a.defaultPrevented&&F.l.g.call(this)}};n(F,C);var E={2:"touch",3:"pen",4:"mouse"};F.prototype.g=function(){F.l.g.call(this);var a=this.h;a.preventDefault?a.preventDefault():a.returnValue=!1};var G="closure_listenable_"+(1E6*Math.random()|0);var H=0;var I=function(a,b,c,d,e){this.listener=a;this.g=null;this.src=b;this.type=c;this.capture=!!d;this.i=e;this.key=++H;this.h=this.j=!1},J=function(a){a.h=!0;a.listener=null;a.g=null;a.src=null;a.i=null};var K=function(a){this.src=a;this.g={};this.h=0};K.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.g[f];a||(a=this.g[f]=[],this.h++);var g;a:{for(g=0;g<a.length;++g){var h=a[g];if(!h.h&&h.listener==b&&h.capture==!!d&&h.i==e)break a}g=-1}-1<g?(b=a[g],c||(b.j=!1)):(b=new I(b,this.src,f,!!d,e),b.j=c,a.push(b));return b};var L="closure_lm_"+(1E6*Math.random()|0),M={},N=0,P=function(a,b,c,d,e){if(d&&d.once)return O(a,b,c,d,e);if(Array.isArray(b)){for(var f=0;f<b.length;f++)P(a,b[f],c,d,e);return null}c=Q(c);return a&&a[G]?a.g(b,c,m(d)?!!d.capture:!!d,e):R(a,b,c,!1,d,e)},R=function(a,b,c,d,e,f){if(!b)throw Error("a");var g=m(e)?!!e.capture:!!e,h=S(a);h||(a[L]=h=new K(a));c=h.add(b,c,d,g,f);if(c.g)return c;d=T();c.g=d;d.src=a;d.listener=c;if(a.addEventListener)D||(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(U(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("b");N++;return c},T=function(){var a=V,b=function(c){return a.call(b.src,b.listener,c)};return b},O=function(a,b,c,d,e){if(Array.isArray(b)){for(var f=0;f<b.length;f++)O(a,b[f],c,d,e);return null}c=Q(c);return a&&a[G]?a.h(b,c,m(d)?!!d.capture:!!d,e):R(a,b,c,!0,d,e)},W=function(a){if("number"!==typeof a&&a&&!a.h){var b=a.src;if(b&&b[G])b.i(a);else{var c=a.type,d=a.g;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(U(c),d):b.addListener&&b.removeListener&&b.removeListener(d);N--;if(c=S(b)){d=a.type;if(d in c.g){var e=c.g[d],f=p(e,a),g;(g=0<=f)&&Array.prototype.splice.call(e,f,1);g&&(J(a),0==c.g[d].length&&(delete c.g[d],c.h--))}0==c.h&&(c.src=null,b[L]=null)}else J(a)}}},U=function(a){return a in M?M[a]:M[a]="on"+a},V=function(a,b){if(a.h)a=!0;else{b=new F(b,this);var c=a.listener,d=a.i||a.src;a.j&&W(a);a=c.call(d,b)}return a},S=function(a){a=a[L];return a instanceof K?a:null},X="__closure_events_fn_"+(1E9*Math.random()>>>0),Q=function(a){if("function"===typeof a)return a;a[X]||(a[X]=function(b){return a.handleEvent(b)});return a[X]};var v,u=document.documentElement,Y;function aa(){W(Y);Y=O(u,"mousedown",function(){w();Z()},{capture:!0})}function Z(){W(Y);Y=P(u,"keydown",function(a){if(9===a.keyCode){a=u;var b=v;if(a.classList)a.classList.add(b);else if(!t(a,b)){var c=q(a);r(a,c+(0<c.length?" "+b:b))}aa()}})};v="zAoYTe";Z();}).call(this);(function(){var c=500;(function(){
window.screen&&window.screen.width<=c&&window.screen.height<=c&&document.getElementById("hdr").classList.add("sml");}).call(this);})();</script><div class="cOl4Id"><a href="/?sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQOwgC"><span class="V6gwVd">G</span><span class="iWkuvd">o</span><span class="cDrQ7">o</span><span class="V6gwVd">g</span><span class="ntlR9">l</span><span class="iWkuvd tJ3Myc">e</span></a></div><div class="bz1lBb"><form class="Pg70bf" id="sf"><a class="l" href="/?output=search&ie=UTF-8&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQPAgE"><span class="V6gwVd">G</span><span class="iWkuvd">o</span><span class="cDrQ7">o</span><span class="V6gwVd">g</span><span class="ntlR9">l</span><span class="iWkuvd tJ3Myc">e</span></a><input name="ie" value="ISO-8859-1" type="hidden"><div class="H0PQec"><div class="sbc esbc"><input class="noHIxc" value="IThome" autocapitalize="none" autocomplete="off" name="q" spellcheck="false" type="text"><input name="oq" type="hidden"><input name="aqs" type="hidden"><div class="x">×</div><div class="sc"></div></div></div><button id="qdClwb" type="submit"></button></form></div><noscript><meta content="0;url=/search?q=IThome&ie=UTF-8&gbv=1&sei=oRRIYff-M4-0mAWH4p7gCA" http-equiv="refresh"><style>table,div,span,p{display:none}</style><div style="display:block">如果系统没有在数秒钟後将您重新导向,请按一下<a href="/search?q=IThome&ie=UTF-8&gbv=1&sei=oRRIYff-M4-0mAWH4p7gCA">这里</a>。</div></noscript></header><div id="main"><div><div class="KP7LCb"> <div class="bRsWnc"> <div class="N6RWV"> <div class="Pg70bf Uv67qb"> <span class="OXXup">全部</span><a class="eZt8xd" href="/search?q=IThome&ie=UTF-8&source=lnms&tbm=nws&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUICCgB">新闻</a><a class="eZt8xd" href="/search?q=IThome&ie=UTF-8&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUICSgC">图片</a><a class="eZt8xd" href="/search?q=IThome&ie=UTF-8&source=lnms&tbm=vid&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUICigD">影片</a>  <a href="https://maps.google.com/maps?q=IThome&um=1&ie=UTF-8&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUICygE">地图</a>  <a href="/search?q=IThome&ie=UTF-8&source=lnms&tbm=shop&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUIDCgF">购物</a>  <a href="/search?q=IThome&ie=UTF-8&source=lnms&tbm=bks&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQ_AUIDSgG">书籍</a>  <div class="FElbsf"><a href="/advanced_search" style="white-space:nowrap" id="st-toggle" role="button">搜寻工具</a></div> </div> </div> </div> </div><div class="Pg70bf wEsjbd ZINbbc xpd O9g5cc uUPGi" style="display:none" id="st-card"><style>.wEsjbd{background-color:#fff;height:44px;white-space:nowrap}.coPU8c{height:60px;overflow-scrolling:touch;overflow-x:auto;overflow-y:hidden}.Xj2aue{height:44px;overflow:hidden}.RnNGze{margin:11px 16px}.wEsjbd div,.wEsjbd a,.wEsjbd li{outline-width:0;outline:none}</style><div class="Xj2aue"><div class="coPU8c"><div class="RnNGze"><style>.PA9J5{display:inline-block}.RXaOfd{display:inline-block;height:22px;position:relative;padding-top:0;padding-bottom:0;padding-right:16px;padding-left:0;line-height:22px;cursor:pointer;text-transform:uppercase;font-size:12px;color:#70757a}.sa1toc{display:none;position:absolute;background:#fff;border:1px solid #d6d6d6;box-shadow:0 2px 4px rgba(0,0,0,0.3);margin:0;white-space:nowrap;z-index:103;line-height:17px;padding-top:5px;padding-bottom:5px;padding-left:0}.PA9J5:hover .sa1toc{display:block}.mGSy8d a:active,.RXaOfd:active{color:#4285f4}</style><div class="PA9J5"><div class="RXaOfd" role="button" tabindex="0"><style>.TWMOUc{display:inline-block;padding-right:14px;white-space:nowrap}.vQYuGf{font-weight:bold}.OmTIzf{border-color:#909090 transparent;border-style:solid;border-width:4px 4px 0 4px;width:0;height:0;margin-left:-10px;top:50%;margin-top:-2px;position:absolute}.RXaOfd:active .OmTIzf{border-color:#4285f4 transparent}</style><div class="TWMOUc">不限语言</div><span class="OmTIzf"></span></div><ul class="sa1toc ozatM"><style>.ozatM{font-size:12px;text-transform:uppercase}.ozatM .yNFsl,.ozatM li{list-style-type:none;list-style-position:outside;list-style-image:none}.yNFsl.SkUj4c,.yNFsl a{color:rgba(0,0,0,0.54);text-decoration:none;padding:6px 44px 6px 14px;line-height:17px;display:block}.SkUj4c{background-image:url(//ssl.gstatic.com/ui/v1/menu/checkmark2.png);background-position:right center;background-repeat:no-repeat}.SkUj4c:active{background-color:#f8f9fa}</style><li class="yNFsl SkUj4c">不限语言</li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIDw">搜寻所有中文网页</a></li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=lr:lang_1zh-TW&lr=lang_zh-TW&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIEA">搜寻繁体中文网页</a></li></ul></div><div class="PA9J5"><div class="RXaOfd" role="button" tabindex="0"><div class="TWMOUc">不限时间</div><span class="OmTIzf"></span></div><ul class="sa1toc ozatM"><li class="yNFsl SkUj4c">不限时间</li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=qdr:h&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIEg"> 过去 1 小时</a></li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=qdr:d&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIEw"> 过去 24 小时</a></li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=qdr:w&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIFA"> 过去 1 周</a></li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=qdr:m&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIFQ"> 过去 1 个月</a></li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=qdr:y&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIFg"> 过去 1 年</a></li></ul></div><div class="PA9J5"><div class="RXaOfd" role="button" tabindex="0"><div class="TWMOUc">所有结果</div><span class="OmTIzf"></span></div><ul class="sa1toc ozatM"><li class="yNFsl SkUj4c">所有结果</li><li class="yNFsl"><a href="/search?q=IThome&ie=UTF-8&source=lnt&tbs=li:1&sa=X&ved=0ahUKEwi308rm4YzzAhUPGqYKHQexB4wQpwUIGA">一字不差</a></li></ul></div></div></div></div><script nonce="2AVBOLh9+oVr1ju3HhSJZQ==">(function(){
var a=document.getElementById("st-toggle"),b=document.getElementById("st-card");a&&b&&a.addEventListener("click",function(c){b.style.display=b.style.display?"":"none";c.preventDefault()},!1);}).call(this);</script></div></div><style>.ZINbbc{background-color:#fff;margin-bottom:10px;box-shadow:0 1px 6px rgba(32, 33, 36, 0.28);border-radius:8px}.uUPGi{font-size:14px;line-height:20px;}.O9g5cc>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.O9g5cc>*:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.O9g5cc>.qxDOhb>*:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.O9g5cc>.qxDOhb>*:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.rl7ilb{display:block;clear:both}.kCrYT{padding:12px 16px 12px}a.fdYsqf{color:#4B11A8}.zBAuLc{font-weight:normal;line-height:normal;margin:0;padding:0}.BNeawe{white-space:pre-line;word-wrap:break-word}.vvjwJb{color:#1967D2;font-size:16px;line-height:20px}a:visited .vvjwJb,.vvjwJb a:visited{color:#4B11A8}.vvjwJb.HrGdeb{color:#fff}a:visited .vvjwJb.HrGdeb,.vvjwJb.HrGdeb a:visited{color:rgba(255,255,255,.70)}.UPmit{font-size:14px;line-height:20px}.UPmit.HrGdeb{color:rgba(255,255,255,.70)}.UPmit.AP7Wnd{color:#0d652d}.x54gtf{height:1px;background-color:#dfe1e5;margin:0 16px}.Q0HXG{height:1px;background-color:#dfe1e5}.Ap5OSd{padding-bottom:12px}.s3v9rd{font-size:14px;line-height:20px}.s3v9rd.HrGdeb{color:#fff}.s3v9rd.AP7Wnd{color:#202124}.mSx1Ee{padding-left:48px;margin:0}.v9i61e{padding-bottom:8px}.XLloXe{color:#1967D2;font-size:14px;line-height:20px}a:visited .XLloXe,.XLloXe a:visited{color:#4B11A8}.XLloXe.HrGdeb{color:#fff}a:visited .XLloXe.HrGdeb,.XLloXe.HrGdeb a:visited{color:rgba(255,255,255,.70)}.deIvCb{font-size:16px;line-height:20px;font-weight:400}.deIvCb.HrGdeb{color:#fff}.deIvCb.AP7Wnd{color:#202124}.FCUp0c{font-weight:bold}.Xdlr0d{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -8px;padding:2px 0 16px 24px;margin-top:-2px;transform:translate3d(0,0,0)}.idg8be{display:table;border-collapse:separate;border-spacing:8px 0;margin:0 -8px;padding-right:16px}.BVG0Nb{display:table-cell;vertical-align:top;background-color:#fff;border-radius:8px;box-shadow:0 1px 6px rgba(32, 33, 36, 0.28);overflow:hidden}.EYOsld{display:inline-block;position:relative}.BFi9Zb{overflow:hidden;position:relative}.S7Jdze{align-items:center;display:flex;flex-direction:column;justify-content:space-around}.R0jTRc{vertical-align:middle}.Xb5VRe{color:#1967D2}a:visited .Xb5VRe{color:#4B11A8}.Xb5VRe.tr0dw{color:#fff}a:visited .Xb5VRe.tr0dw{color:rgba(255,255,255,.70)}.tAd8D{font-size:14px;line-height:20px}.tAd8D.HrGdeb{color:rgba(255,255,255,.70)}.tAd8D.AP7Wnd{color:#70757a}.nGphre{float:right;padding-left:16px}.UykT9d{border-radius:8px;display:block}.nYT7Qb{clear:both}.skVgpb{display:table;table-layout:fixed;width:100%}.VGHMXd{display:table-cell;vertical-align:middle;height:52px;text-align:center}.LpaDrb{margin:0 auto 8px;display:block}.vbShOe{padding-top:0}.AVsepf{padding-bottom:8px}.AVsepf.u2x1Od{padding-bottom:0}.r0bn4c.tr0dw{color:rgba(255,255,255,.70)}.r0bn4c.rQMQod{color:#70757a}.tP9Zud{display:inline-block;}.QzarWc{color:#3c4043}.oqSTJd{color:#70757a}.Hk2yDb,.Hk2yDb span{background-repeat:repeat-x;background-size:14px,14px;height:14px;width:70px}.Hk2yDb{display:inline-block;font-size:0;line-height:0;position:relative;top:1px}.Hk2yDb span{display:block}.Hk2yDb.KsR1A{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAD1BMVEVMaXEAAAAAAAAAAAAAAACF6eB8AAAABXRSTlMAID8OM2w9R7oAAACdSURBVHgBvdGBCcIwEEbhq+kAaXEA+5oBYuoAmnb/mQT5gcMDCoB+AIEA9y7EfmrIFl1uFrXVol4sSFBjB3LsQCzNsMQOlNjhq5S26Qrwmjbdp6PjlKMq4SiXwNOAhrOadDeymoyAPP1zfEUGJJvTNdFOLxFzElLPQqNb0/8F+x39iDTYzR56ucws7pBePtnU/aKomrpbM5sM1f7pDdrTIIXMnb07AAAAAElFTkSuQmCC)}.Hk2yDb.KsR1A span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAGFBMVEVMaXH0tAD0tAD0tAD0tAD0tAD0tAD0tAB7hoq7AAAACHRSTlMAP6Ib/oXVZJ3/vYgAAADHSURBVHgBnNE1A4JgGARgmtHW0dxtZ+OA0dbRdrX/v+RLmkc/9H3MH2HjEcgVIrA1iMCZEoF7NWwycA6hBKxDmAZ6IawA/aDx0FMLoGjgKIAdA3d0WM89SkfYOZaWl5SOdwSiGe0EMW4/jkIP5vdeU2t2k14sUGugKJ6GKGdfG0aoE/+l509I7y/4azfiL7/l4IDIU4rmHwv0zZUH94AaZ421f4DO1ofVCFmgbGwbQNwzahtrJ4sRoUQvva8JuRo9vcA8RyMAAIXWR1O6HNlyAAAAAElFTkSuQmCC)}.e1wPee{text-decoration:underline}.ji5jpf{text-align:center}.uEec3{font-size:12px;line-height:16px}.uEec3.HrGdeb{color:rgba(255,255,255,.70)}.uEec3.AP7Wnd{color:#70757a}.mEUgP{font-weight:bold;font-size:16px;color:#000;margin:0;padding:12px 16px 12px}.iIWm4b{box-sizing:border-box;min-height:48px}.gGQDvd{padding:14px;position:relative}.Q71vJc{display:block;position:relative;width:100%}.kjGX2{position:absolute;left:48px;right:0;vertical-align:bottom;display:inline-block;color:#3c4043}.ieB2Dd{width:40px;height:40px;overflow:hidden;margin-top:-10px;margin-bottom:-16px;margin-right:8px;border-radius:4px;display:inline-block;border-radius:50%;}.LsF2v span{color:#fff;mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAABa0lEQVR4AeyWtUIYQRBAX6yLu0uH08Q9ZfInNHF36UKFlHwHNLi7u2uNN9hgg3PsCVtx753fzOkalgkJieErOXQwsWAHOXwjZjcvXohsYy7xBOYgycwhDs6RzEECcJZyxGA5Z/HJIUoQVAp4z22OL3ibdxs+WgmH8EUqorZzl83cpR1RU/FBDKI2cMrhAzYgaiyeydDUQc7hxDkGNSoDj1xH1CfsxDNEvYEnXmtaNiayNPK1vw+UgIkEfx+pRdOiMRGlkS14YlLTjmHimEZO4IlxTTuCiSMaOYkn2jQtChORGtlr+ycX4YlXrotptkb+wxM3XFa0J4j60E5TMaRRNXgmHlEbOevQ2DUi6gt8kGJorjsQNW23OpxbnOQEt3lPMYLKNJdsdpkjuv5lo9MX/nMBUT/jk3iHYUs9zwGQ4LeAaHTgxTgtpPOLpyj8Dn4LE4l79RbhLV7bvsVnsHmLz1gk0e7lQ0LmRzMAAAU5VLMEuZJZAAAAAElFTkSuQmCC)}.lRVwie{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rLshyf,.BmP5tf{padding-top:12px;padding-bottom:12px}.YOx3Ab{padding-left:16px;}.w1C3Le,.BmP5tf,.G5NbBd,.CS4w5b{padding-left:16px;padding-right:16px;}.G5NbBd{padding-bottom:12px}.CS4w5b{padding-top:12px}.nMymef{display:flex}.G5eFlf{flex:1;display:block}.nMymef span{text-align:center}</style><div><!--SW_C_X--></div><div></div><div><div class="ZINbbc xpd O9g5cc uUPGi"><div class="kCrYT"><a href="/url?q=https://www.ithome.com.tw/&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQFnoECAIQAQ&usg=AOvVaw3tWSoAsz2-VyIAQRbTxmgB"><h3 class="zBAuLc"><div class="BNeawe vvjwJb AP7Wnd">iThome</div></h3><div class="BNeawe UPmit AP7Wnd">www.ithome.com.tw</div></a></div><div class="x54gtf"></div><div class="kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><div><div><div class="Ap5OSd"><div class="BNeawe s3v9rd AP7Wnd">按赞加入iThome粉丝团追踪 . 数据为王!AWS 如何协助企业推动业务革新 · 线上分享如何强化企业数位韧性和I T 即战力 · 利用SD-WAN完美掌握疫情时代网路与安全 ...</div></div><div class="v9i61e"><div class="BNeawe s3v9rd AP7Wnd"><span class="BNeawe"><a href="/url?q=https://www.ithome.com.tw/news&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQjBB6BAgCEAQ&usg=AOvVaw2EUT_A_Dd9GQT66m5ecjOM"><span class="XLloXe AP7Wnd">新闻</span></a></span></div></div><div class="v9i61e"><div class="BNeawe s3v9rd AP7Wnd"><span class="BNeawe"><a href="/url?q=https://www.ithome.com.tw/security&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQjBB6BAgCEAY&usg=AOvVaw34cGzfU_zqKmbLBAWYavpp"><span class="XLloXe AP7Wnd">资安</span></a></span></div></div><div class="v9i61e"><div class="BNeawe s3v9rd AP7Wnd"><span class="BNeawe"><a href="/url?q=https://www.ithome.com.tw/latest&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQjBB6BAgCEAg&usg=AOvVaw3Rs9x5wrboshQVceWpI0Kj"><span class="XLloXe AP7Wnd">今日最新</span></a></span></div></div><div><div class="BNeawe s3v9rd AP7Wnd"><span class="BNeawe"><a href="/url?q=https://www.ithome.com.tw/seminar&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQjBB6BAgCEAo&usg=AOvVaw1CKJfCyrJ0foj_5X5oeGD0"><span class="XLloXe AP7Wnd">研讨会</span></a></span></div></div></div></div></div></div></div></div></div><div><div class="ZINbbc xpd O9g5cc uUPGi"><div class="kCrYT"><div class="BNeawe deIvCb AP7Wnd"><span class="FCUp0c rQMQod">来自 ithome.com.tw 的最新报导</span></div></div><div><div><div><div class="Xdlr0d"><div class="idg8be"><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/article/146788&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAD&usg=AOvVaw3WAnPCulX89D2fBqk9tFl-"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_1" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">谁偷了NSA的骇客秘笈?</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
5 小时前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/voice/146755&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAH&usg=AOvVaw3jU7wGKcf4rNCABeCO8I0a"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_3" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">维持零接触体验,背後需要更多互动</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
5 小时前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/news/146799&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAL&usg=AOvVaw1X3MHpfATY3O3M8Ow4gJa7"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_5" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">【疫情日报】9月21日至10月4日维持疫情警戒二级,有条件开放会展活动办理</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
21 小时前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/news/146785&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAP&usg=AOvVaw0COBfhELsH73Fb_kApnHjn"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_7" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">Cloudflare发表可加速页面载入的Early Hints功能,主流浏览器都承诺支援</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
2 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://ithome.com.tw/news/146786&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAT&usg=AOvVaw1VPJZrq9o_gyxY5142nPz-"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_9" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">联合国警告:AI将对人权造成威胁,呼吁暂停销售及使用AI系统</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
2 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/news/146711&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAX&usg=AOvVaw3DUx_2nu5ziLE2-9c3Cqph"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_11" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">IT人才月报第19期:微软协作工具大更新,Teams不只能自动聚焦发言人还能辨识开会员工是谁</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
2 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/review/146769&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAb&usg=AOvVaw05MBWVi7WfSbMBbZ0hvP9O"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_13" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">整合5奈米制程Arm处理器核心,Marvell推出新一代DPU</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
2 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/news/146764&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAf&usg=AOvVaw1G3tbBFBrWpzs7q_NOlksc"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_15" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">微软:Windows MSHTML漏洞已有勒索软件开采</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
3 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://www.ithome.com.tw/news/146760&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAj&usg=AOvVaw1AQmprlX-0J_XtWdi_IHzV"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_19" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">微软释出新版非订阅桌机版Office,Office 2021订10月5日推出</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
3 天前</div></div></div></div></div></a><a class="BVG0Nb" href="/url?q=https://today.ithome.com.tw/news/146743&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlO8DegQIBBAn&usg=AOvVaw2__QrePEOCxuV9fS2MqzBa"><div><div style="width:232px"><div class="S7Jdze" style="width:232px;height:128px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:232px;max-height:128px" id="dimg_21" data-deferred="1"></div><div class="RWuggc kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><span class="rQMQod Xb5VRe">Microsoft帐号全面支援无密码登入,甚至提供用户能移除所设密码</span></div></div><div><div class="BNeawe tAd8D AP7Wnd">iThome
3 天前</div></div></div></div></div></a></div></div></div></div></div></div></div><div><div class="ZINbbc xpd O9g5cc uUPGi"><div class="kCrYT"><div class="nGphre"><a href="/url?q=https://www.dxomark.cn/about-us/&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQwW56BAgIEAI&usg=AOvVaw3JOrkCTm8OHEYLHFXzq5Yz"><img class="UykT9d" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:72px;max-height:72px" id="dimg_17" data-deferred="1"></a></div><span><h3 class="zBAuLc"><div class="BNeawe deIvCb AP7Wnd">IT之家</div></h3></span><span><div class="BNeawe tAd8D AP7Wnd">网站</div></span><div class="nYT7Qb"></div></div><div class="Q0HXG"></div><div class="kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><div><div class="BNeawe s3v9rd AP7Wnd">IT之家是软媒公司建立的网站,於2011年5月27日正式执行。後来软媒将其所属的Vista之家、Win7之家、Win8之家的内容将合并至IT之家中,并开发了Android,IOS,Windows Phone,Windows 10 UWP客户端和微信小程序。 <span class="BNeawe"><a href="/url?q=https://zh.wikipedia.org/zh-tw/IT%25E4%25B9%258B%25E5%25AE%25B6&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQmhN6BAgIEAc&usg=AOvVaw3y37JvlcYoC2f3332zLx2a"><span class="XLloXe AP7Wnd">维基百科</span></a></span></div></div></div></div></div><div class="vbShOe kCrYT"><div class="AVsepf"><div class="BNeawe s3v9rd AP7Wnd"><span><span class="BNeawe s3v9rd AP7Wnd">上线日期</span></span>: <span><span class="BNeawe tAd8D AP7Wnd">2011 年 5 月 27 日</span></span></div></div><div class="AVsepf u2x1Od"><div class="BNeawe s3v9rd AP7Wnd"><span><span class="BNeawe s3v9rd AP7Wnd">网站类型</span></span>: <span><span class="BNeawe tAd8D AP7Wnd">网路媒体</span></span></div></div></div></div></div><div><div class="ZINbbc xpd O9g5cc uUPGi"><div class="kCrYT"><a href="/url?q=https://www.facebook.com/ithomeonline/&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQFnoECAcQAg&usg=AOvVaw0BpVrAzoUWo5PEncJPkrwU"><h3 class="zBAuLc"><div class="BNeawe vvjwJb AP7Wnd">iThome - Home | Facebook</div></h3><div class="BNeawe UPmit AP7Wnd">www.facebook.com › ... › Brand › Website › News & Media Website</div></a></div><div class="x54gtf"></div><div class="kCrYT"><div><div class="BNeawe s3v9rd AP7Wnd"><div><div><div class="BNeawe s3v9rd AP7Wnd">iThome Online 是台湾第一个网路原生报,提供IT产业即时新闻、企业IT产品报导与测试、技术专题、IT应用报导、IT书讯,以及面向丰富的名家专栏。</div></div></div></div></div></div></div></div><div><div class="ZINbbc xpd O9g5cc uUPGi"><div class="kCrYT"><div class="nGphre"><img class="UykT9d" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:72px;max-height:72px" id="dimg_23" data-deferred="1"></div><span><h3 class="zBAuLc"><div class="BNeawe deIvCb AP7Wnd">电周文化事业股份有限公司</div></h3></span><span><div class="BNeawe tAd8D AP7Wnd"><span class="r0bn4c rQMQod tP9Zud"> <span class="Eq0J8 oqSTJd" aria-hidden="true">4.7</span> <div class="Hk2yDb KsR1A" aria-label="评等为 4.7,最高 5" role="img"><span style="width:63px"></span></div> <span class="Eq0J8">(7)</span> </span>
位於台北的媒体公司</div></span><div class="nYT7Qb"></div></div><div class="Q0HXG"></div><div class="kCrYT"><div class="skVgpb"><a class="VGHMXd" href="https://maps.google.com/maps?um=1&ie=UTF-8&fb=1&gl=tw&sa=X&geocode=KWM812BmqUI0MaccvMVQHekX&daddr=104%E5%8F%B0%E5%8C%97%E5%B8%82%E4%B8%AD%E5%B1%B1%E5%8D%80%E5%8D%97%E4%BA%AC%E6%9D%B1%E8%B7%AF%E4%BA%8C%E6%AE%B517%E8%99%9F%E9%9B%BB%E9%80%B1%E6%96%87%E5%8C%96%E4%BA%8B%E6%A5%AD%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8+%E8%99%9F5%E6%A8%93&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQlDt6BAgJEAM"><div class="LpaDrb S7Jdze" style="width:24px;height:24px"><img class="EYOsld" alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" style="max-width:24px;max-height:24px" id="dimg_25" data-deferred="1"></div><div class="BNeawe ji5jpf uEec3 AP7Wnd">规划路线</div></a><a class="VGHMXd" href="/url?q=http://www.ithome.com.tw/&sa=U&ved=2ahUKEwi308rm4YzzAhUPGqYKHQexB4wQgU96BAgJEAQ&usg=AOvVaw2LK0JGwJOFjmOw_1TMJbc8"><div class="LpaDrb S7Jdze" style="width:24px;height:24px"><img class="EYOsld" alt=""...

结语

今天介绍了 requests 这个好用的套件, 最後让大家写了一只爬虫,但目前还没进行清理或定位,读者可以使用 【Day 05】- Python 字串操作(正规表达式 regexes 、原生基本操作) 来对资料作处理,或者等待明天或後天的资料处理分享。

明日内容

明天会与各位介绍 requests-HTML ,它是今天的 Requests 库再进行进一步的封装的产物,多了资料清洗的功能,敬请期待。

补充资料

Requests 库官方文件 : https://docs.python-requests.org/en/latest/

[Python爬虫教学]开发Python网页爬虫前需要知道的五个基本观念 : https://www.learncodewithmike.com/2020/10/python-web-scraping.html


<<:  Day 22 - Follow Along Links

>>:  Day8:EndPoint for Microsoft Defender 警示和事件

第28天:『SEO优化第十步』-内部连结和外部反向连结

SEO优化-内部连结和外部反向连结 所谓的连结通常是使用文字、图片或是网址作为超连结,SEO优化中常...

Day18 Helm

今天我们要先来介绍一下 Helm,由於 Open-Match 是基於微服务建立的分散式架构,在部署上...

【Day 10】Google Apps Script - 环境篇回顾整理

停留回想:要进入下一篇前,整理回顾一下环境篇的笔记思绪。 今日要点: 》环境篇回顾整理 》系列目录...

从零开始用github架设静态网站入门(2) - HTML & Bootstrap

讲完一开始的设置,紧接着就要到关键的程序部份了,而所谓的HTML是属於一种标签语言,本身并没有一般程...

作业系统L5-行程排班

作业系统L5-行程排班 CPU-I/O分割 简介:CPU分割後接着IO分割 CPU排班程序 短程排班...