鏈枃鐢卞浘闆€绀惧尯鎴愬憳鐏胯嫢鏄熺┖鎾板啓锛屾杩庡姞鍏ュ浘闆€绀惧尯锛屼竴璧锋墦閫犵簿褰╃殑鍏嶈垂鎶€鏈暀绋嬨€傜紪绋嬭涓氱殑鍙戝睍銆傚鏋滀綘瑙夊緱鎴戜滑鐨勬枃杩樹笉閿欙紝璁板緱鐐硅禐+鍏虫敞+璇勮涓夋鍝︷煡梆煡梆煡帮紝榧撳姳鎴戜滑鍐欏嚭鏇村ソ鐨勬暀绋嬸煉繖鏄竴绯诲垪鍩轰簬瀹炴垬鐨勬暀绋嬶紝浠庢渶绠€鍗曠殑鐖櫕绋嬪簭寮€濮嬶紝鏁欎汉fish锛岃缁嗗垎鏋愪簡绋嬪簭璁捐鐨勬€濊矾锛屽厖鍒嗗睍绀轰簡鐖櫕鏄浣曚竴姝ユ璋冭瘯鍒版渶鍚庡畬鎴愮殑銆傚垎浜叧浜庣埇铏殑鍚勭鐭ヨ瘑鍜屾妧鑳斤紝鏃ㄥ湪甯姪澶у浜嗚В鐖櫕銆佽璁$埇铏€佷娇鐢ㄧ埇铏紝鏈€缁堜韩鍙楃埇铏粰鎴戜滑鐨勫伐浣滃拰鐢熸椿甯︽潵鐨勪究鍒┿€傞澶囩煡璇嗗熀鏈殑python缂栫▼鐭ヨ瘑杩欓噷浣跨敤Python3浣滀负寮€鍙戠幆澧冨拰鍩烘湰鐨勬墦鍖呯煡璇嗗熀鏈殑web缂栫▼鐭ヨ瘑鍒濇浜嗚ВHTTP鍗忚杩欐槸鏈€绠€鍗曠殑璁$畻鏈虹▼搴忚璧风埇铏ぇ瀹跺簲璇ラ兘鎴栧鎴栧皯鍚杩囧惂瀹冭涔堟繁鍒伙紝瑕佷箞鏈夎叮銆備綔涓轰竴涓凡缁忓啓浜嗗洓浜斿勾浠g爜鐨勫垵绾х爜鍐滐紝鐖櫕绋嬪簭鏄绠楁満绋嬪簭涓渶绠€鍗曚篃鏄渶鏈夎叮鐨勭▼搴忋€傚彧瑕佷細涓婄綉锛屽氨鏈夊啓鐖櫕鐨勫ぉ璧嬨€備负浠€涔堢埇琛屽姩鐗╂槸锠曡櫕锛熷洜涓鸿櫕瀛愮殑澶磋剳姣旇緝绠€鍗曪紝鎵€浠ョ埇铏▼搴忎篃鏄?+鈥滀竴鏍圭瓔鈥?+锛屼笉闇€瑕侀殣绉樼殑鏁板鐭ヨ瘑锛屼篃涓嶉渶瑕佽璁″悇绉嶉珮娣辩殑绠楁硶銆傛垜浠彧瑕佺敤璁$畻鏈鸿兘鍚噦鐨勨€滃ぇ鐧借瘽鈥濆氨鍙互浜嗐€傚紑鍙戠埇铏殑鍩烘湰濂楄矾鐢ㄤ竴鍙ヨ瘽姒傛嫭浜嗘墍鏈夌埇铏▼搴忕殑鍔熻兘锛氭ā鎷熶汉绫讳笂缃戞煡鎵俱€佷笅杞姐€佸瓨鍌ㄦ暟鎹殑鎿嶄綔銆備笅闈㈡垜灏变互鏇煎浘杩欎釜缃戠珯涓轰緥鏉ュ垎浜竴涓嬪璺€傜涓€姝ワ細鎵撳紑鐩爣缃戝潃寮虹儓寤鸿Chrome鍏堟墦寮€杩欎釜缃戝潃锛歨ttps://www.nanrentu.cc/sgtp/锛屼綘浼氱湅鍒板涓嬬晫闈€傜幇鍦ㄦ垜浠彧鏄敤娴忚鍣ㄦ墜鍔ㄦ墦寮€杩欎釜椤甸潰锛屾帴涓嬫潵灏遍渶瑕佺敤浠g爜璁╃▼搴忎篃鎵撳紑杩欎釜椤甸潰銆傞渶瑕佸垎鏋愭祻瑙堝櫒鏄浣曟墦寮€杩欎釜椤甸潰鐨勶紝璇风湅绠€鍗曟祦绋嬪浘銆傚湪python涓紝鎮ㄥ彲浠ヤ娇鐢╮equests宸ュ叿鍖呭彂閫丠TTP璇锋眰銆備负浜嗙悊瑙g▼搴忊€滅湅鍒扳€濈殑椤甸潰鏄粈涔堟牱瀛愮殑锛屾垜浠渶瑕佸皢绋嬪簭鑾峰彇鍒扮殑HTML鏂囦欢淇濆瓨鍒版湰鍦帮紝鐒跺悗鐢ㄦ祻瑙堝櫒鎵撳紑锛岃繖鏍锋墠鑳藉拰绋嬪簭鏈変竴鏍风殑鎰熻銆備粠鑰岃揪鍒扳€滀汉鏈哄悎涓€鈥濈殑澧冪晫銆傛垜浠柊寤轰竴涓猧ndex.py鏂囦欢锛屽湪閲岄潰鍐欏叆濡備笅鍐呭锛歩mportrequestsurl="https://www.nanrentu.cc/sgtp/"response=requests.get(url)ifresponse.status_code==200:withopen("result.html",'a',encoding="utf-8")asf:f.write(response.text)鍦ㄦ祻瑙堝櫒涓墦寮€鍐欏ソ鐨凥TML鏂囦欢娌¢敊銆傝繖涓庢偍鍦ㄦ祻瑙堝櫒涓湅鍒扮殑鏈変綍涓嶅悓锛熻繖涓椂鍊欏氨涓哄ぇ瀹舵彮鏅撲竴涓粷涓栧疂鐗┾€斺€擟hrome璋冭瘯骞冲彴锛堟寜F12锛夋潵缁欏ぇ瀹跺垎鏋愪竴涓嬨€備簨瀹炰笂锛屾垜浠湪娴忚鍣ㄤ腑鐪嬪埌鐨勯〉闈笉浠呬粎鏄竴涓狧TML椤甸潰锛岃€屾槸css銆乯s銆乭tml鍜屽悇绉嶅獟浣撹祫婧愮殑缁勫悎锛屾祻瑙堝櫒鏈€缁堟覆鏌撻〉闈€傜孩妗嗛儴鍒嗘爣绀轰簡鏈杩涚▼鍔犺浇鐨凟achresource銆傚綋鎴戜滑鐢ㄧ▼搴忓悜鏈嶅姟鍣ㄨ姹傛椂锛屽緱鍒扮殑鍙槸涓€涓狧TML椤甸潰锛屾墍浠ョ▼搴忓拰鎴戜滑鐪嬪埌鐨勯〉闈㈡湁寰堝ぇ鐨勪笉鍚屻€備絾HTML鏄骞插苟涓嶉噸瑕併€傛姄浣忎富蹇冮锛屽彧闇€瑕侀『钘ゆ懜鐡滐紝椤鸿棨鎽哥摐銆係tep2锛氭壘鍒扮洰鏍囪祫婧愶紝鎵撳紑鏈珯鍚庯紝灏忎粰濂充滑灏卞彲浠ュ悇鍙栨墍闇€浜嗐€備綘鎯充綋楠屼竴涓嬭惂浜氳僵鐨勫揩涔愬悧锛熺洰鏍囨槸灏忛矞鑲夛紱璐亱褰簬鏅忕殑韬綋锛熼偅涓倢鑲夌敺鏄綘鐨勮彍銆傛澶栵紝杩樻湁闊╁浗娆у反銆佹缇庡瀷鐢枫€備汉绫绘槸楂樼骇鐢熺墿锛岀溂鐫涗細鑷姩鑱氱劍鐩爣锛岃€岀埇琛屽姩鐗╂槸鈥滀竴鍧楄倢鑲夆€濓紝瀹冧笉鑳借嚜鍔ㄨ仛鐒︼紝杩樺緱鎴戜滑甯畠寮曡矾銆傚啓杩囧墠绔〉闈㈢殑鏈嬪弸閮界煡閬擄紝CSS鏍峰紡鏄€氳繃鍚勭閫夋嫨鍣ㄧ粦瀹氬埌鐩稿簲鐨勮妭鐐逛笂鐨勶紝鎵€浠ユ垜浠篃鍙互浣跨敤CSS閫夋嫨鍣ㄦ潵閫夋嫨鎴戜滑鎯宠鎻愬彇淇℃伅鐨勫厓绱犮€侰hrome涓凡缁忓噯澶囦簡涓€涓狢SS閫夋嫨鍣ㄧ鍣紝鍙互涓烘垜浠兂瑕佺殑鍏冪礌鐢熸垚閫夋嫨鍣ㄣ€傚叿浣撹繃绋嬪涓嬶細绗笁姝ユ璧忓皬寮焴step3锛氳В鏋愰〉闈㈣繖鏃跺€欏氨瑕佷粙缁嶄竴涓嬮〉闈㈣В鏋愮鍣╬yquery銆傝繖涓伐鍏峰簱鍙互閫氳繃鎴戜滑澶嶅埗鐨凜SS閫夋嫨鍣ㄥ湪HTML椤甸潰涓壘鍒板搴旂殑鍏冪礌锛屽苟涓斿彲浠ュ緢鏂逛究鐨勬彁鍙栧嚭鍚勭灞炴€с€傞偅鎴戜滑灏辨潵鍒嗘瀽涓€涓嬭繖浣嶅皬鍝ャ€傛垜浠厛瀹夎PyQuery鍖咃紝鍙互浣跨敤pip鍖呯鐞嗗櫒瀹夎锛岀劧鍚庝慨鏀逛唬鐮佸涓嬶細importrequestsfrompyqueryimportPyQueryaspqurl="https://www.nanrentu.cc/sgtp/"response=瑕佹眰銆俫et(url)ifresponse.status_code==200:withopen("result.html",'w',encoding="utf-8")asf:f.write(response.text)#寮€濮嬭В鏋恉oc=pq(response.text)#灏嗗鍒剁殑selector绮樿创鍒?閫夋嫨瀵瑰簲鐨勮妭鐐筰mgElement=doc('body>div:nth-child(5)>div>div>div:nth-child(2)>ul>li:nth-child(3)>a>img')#鎻愬彇灞炴€э紝寰楀埌鍥剧墖閾炬帴imgSrc=imgElement.attr('src')#鍦ㄥ睆骞曚笂杈撳嚭鍥剧墖閾炬帴print(imgSrc)step4:storagetarget杩欎箞nice灏忓紵鎬庝箞鍙互灏辫浠栦竴鐩翠笂缃戯紵鎶婁粬鏀惧湪纭洏鐨勫涔犺祫鏂欐枃浠跺す閲屾槸鏈€瀹夊叏鐨勩€傛帴涓嬫潵锛屾垜浠妸灏忓紵寮熸斁鍒扮閲屻€備笅杞藉浘鐗囩殑杩囩▼鍏跺疄鍜屾姄鍙朒TML椤甸潰鐨勮繃绋嬫槸涓€鏍风殑銆傚畠杩樹娇鐢╮equests鍙戦€佽姹傝幏鍙栨暟鎹祦骞朵繚瀛樺湪鏈湴銆俰mportrequestsfrompyqueryimportPyQueryaspqurl="https://www.nanrentu.cc/sgtp/"response=requests.get(url)ifresponse.status_code==200:withopen("result.html",'w',encoding="utf-8")asf:f.write(response.text)doc=pq(response.text)imgElement=doc('body>div:nth-child(5)>div>div>div:nth-child(2)>ul>li:nth-child(3)>a>img')imgSrc=imgElement.attr('src')print(imgSrc)#涓嬭浇鍥剧墖imgResponse=requests.get(imgSrc)ifimgResponse.status_code==200:#濉啓鏂囦欢璺緞锛屼互浜岃繘鍒跺舰寮忓啓鍏ユ枃浠秝ithopen('learningfile/boy.jpg','wb')asf:f.write(imgResponse.content)f.close()杩欎釜鍏堟潵鐪嬬湅鏁堟灉鍚с€傝嚦姝わ紝鍥涙锠曡櫕鍙敤浜嗗崄鍑犺浠g爜灏卞畬鎴愪簡涓€涓皬灏忕殑鐖櫕銆傛槸涓嶆槸寰堢畝鍗曪紵鍏跺疄鐖櫕鐨勫熀鏈€濊矾灏辨槸杩欏洓涓楠ゃ€傛墍璋撳鏉傜殑鐖鍔ㄧ墿锛屽氨鏄湪杩欏洓涓楠ょ殑鍩虹涓婁笉鏂繘鍖栫殑銆傜埇铏殑鏈€缁堢洰鐨勬槸鑾峰彇鍚勭璧勬簮锛堟枃瀛楁垨鍥剧墖锛夛紝鎵€鏈夌殑鎿嶄綔閮戒互璧勬簮涓轰腑蹇冦€傛墦寮€璧勬簮锛屽畾浣嶈祫婧愶紝鍒嗘瀽璧勬簮锛屼笅杞借祫婧愶紝杩樻湁鏇粹€嬧€嬪灏忓紵銆傞€氳繃浠ヤ笂姝ラ锛屾垜浠彧鑳藉緱鍒颁竴涓皬寮熷紵銆傛濡傞泦缇庢墍璇达紝鎴戠洿鎺ラ紶鏍囧彸閿笅杞藉氨鍙互浜嗐€備綍鑻﹀啓鐖櫕锛熺劧鍚庯紝鎴戜滑鍐嶅崌绾т竴娉㈤€夋嫨鍣紝鎶婂皬鍏勫紵浠斁鍒版暟缁勯噷锛屽叏閮ㄥ紕鍒扮閲屻€傞噸鏋勪唬鐮佷负浜嗕互鍚庡啓浠g爜鏇存柟渚匡紝棣栧厛瑕佽繘琛岀畝鍗曠殑閲嶆瀯锛岃浠g爜鏇存竻鏅般€傛坊鍔犲叆鍙e嚱鏁帮紝灏佽瀵瑰浘鐗囩殑鎿嶄綔銆傞噸鏋勪唬鐮佸涓嬶細importrequestsfrompyqueryimportPyQueryaspqdefsaveImage(imgUrl,name):imgResponse=requests.get(imgUrl)fileName="learningfile/%s.jpg"%nameifimgResponse.status_code==200:withopen(fileName,'wb')asf:f.write(imgResponse.content)f.close()defmain():baseUrl="https://www.nanrentu.cc/sgtp/"response=requests.get(baseUrl)ifresponse.status_code==200:withopen("result.html",'w',encoding="utf-8")asf:f.write(response.text)doc=pq(response.text)imgElement=doc('body>div:nth-child(5)>div>div>div:nth-child(2)>ul>li:nth-child(3)>a>img')imgSrc=imgElement.attr('src')print(imgSrc)saveImage(imgSrc,'boy')if__name__=="__main__":main()upgradeselector鏈夊墠绔紪绋嬬粡楠岀殑鍚屽鍙互鍙互鐪嬪嚭selector鑷姩Chrome鐢熸垚鐨勬寚瀹氫簡涓€涓叿浣撶殑瀛愬厓绱狅紝鎵€浠ュ彧閫夋嫨浜嗕竴涓皬寮燂紝閭d箞鎴戜滑闇€瑕佸垎鏋愰€氱敤閫夋嫨鍣紝鍙杝tinky鍏勫紵鍦ㄤ竴璧枫€傜敤榧犳爣鐐瑰嚮璋冭瘯骞冲彴锛岄€愬眰鏌ョ湅杩欎釜HTML鏂囦欢鐨勫厓绱犲眰娆$粨鏋勶紝鎵惧埌鍏朵腑鐩稿悓鍜岄噸澶嶇殑鍦版柟銆傝繖灏辨槸鎴戜滑鐨勭獊鐮村彛鎵€鍦ㄣ€傛垜浠彲浠ョ湅鍒板浘鐗囬兘鍦ㄤ竴涓悕涓篽-piclist鐨?ul>鏍囩涓紝閭d箞鎴戜滑鍙互鍐欏涓嬮€夋嫨鍣?h-piclist>li>a>img銆傝繖灏嗛€夋嫨椤甸潰涓婄殑鎵€鏈夊浘鍍忓厓绱犮€傜劧鍚庣敤涓€涓猣or寰幆閬嶅巻瀹冦€俰mportrequestsfrompyqueryimportPyQueryaspq#寮曞叆UUID鍛藉悕鍥剧墖importuuiddefsaveImage(imgUrl,name):imgResponse=requests.get(imgUrl)fileName="learningfile/%s.jpg"%nameifimgResponse.status_code==200:withopen(fileName,'wb')asf:f.write(imgResponse.content)f.close()defmain():baseUrl="https://www.nanrentu.cc/sgtp/"鍝嶅簲=requests.get(baseUrl)ifresponse.status_code==200:withopen("result.html",'w',encoding="utf-8")asf:f.write(response.text)doc=pq(response.text)#閫夋嫨鏈〉鎵€鏈夌洰鏍囧浘鐗囧厓绱爄mgElements=doc('.h-piclist>li>a>img').items()#閬嶅巻杩欎簺鍥剧墖鍏冪礌foriinimgElements:imgSrc=i.attr('src')print(imgSrc)saveImage(imgSrc,uuid.uuid1().hex)if__name__=="__main__":main()涓棤娉曚笅杞界殑鍥剧墖鍙互鐪嬪埌鍥剧墖鐨勬墍鏈夐摼鎺ュ凡缁忚幏鍙栦簡锛屼絾鏄綋鎴戝幓涓嬭浇鍥剧墖鐨勬椂鍊欙紝鍑虹幇浜嗕竴浜涙剰澶栵紝璇锋眰鍥剧墖娌℃湁浠讳綍鍙嶅簲銆傝繖鏈変粈涔堥棶棰樺悧锛熻幏鍙栨墍鏈夌殑鍥剧墖閾炬帴锛岃瘉鏄庝唬鐮佹病鏈夐棶棰橈紝灏嗗浘鐗囬摼鎺ユ斁鍒版祻瑙堝櫒涓甯告墦寮€锛岃瘉鏄庤繛鎺ユ病鏈夐棶棰橈紝閭d箞鐜板湪鍙兘鏄綉缁滃嚭浜嗛棶棰樸€傜綉閫熸參銆佺綉缁滄尝鍔ㄥ鏂圭綉绔欐湁鍙嶇埇鎺柦鈥︹€﹁繖鏃跺€欐湁寰堝鍥犵礌銆傛垜浠厛鐢ㄦ渶绠€鍗曠殑鏂规硶瑙e喅闂锛屾柇寮€閲嶈繛銆傞噸鍚瑪璁版湰WIFI锛岄噸鏂板姞鍏ョ綉缁滐紝鐒跺悗杩愯绋嬪簭銆傛儕鍠滄潵浜嗭紝鑷厔寮熶滑椤哄埄杩涘叆浜嗕粨搴撱€傚綋鐒讹紝杩欑鏂规硶涓嶆槸鐏典腹濡欒嵂銆傛垜浠渶瑕佹湁鏇村鐨勬妧宸ф潵鎻愰珮鐖櫕绋嬪簭鐨勨€滄紨鎶€鈥濄€傛垜浠殑鐖櫕绋嬪簭瓒婂儚浜猴紝鎴戜滑鑾峰彇璧勬簮鐨勬垚鍔熺巼灏变細瓒婇珮銆傜湅鍒拌繖閲岋紝浣犲簲璇ヨ笍鍏ヤ簡鐖櫕鐣岀殑澶ч棬銆傚鏋滆繖涓笘鐣屼笂鏈変富棰樻洸锛岄偅涓€瀹氭槸钖涗箣璋︾殑銆婃紨鍛樸€嬩笅涓€涓暀绋嬶紝鎴戜細纾ㄧ牶鑷繁鐨勨€滄紨鎶€鈥濓紝缁撲氦鏇村鐨勫皬鍝ュ摜銆傚鏋滆寰楁垜浠啓鐨勮繕涓嶉敊锛岃寰楃偣璧?鍏虫敞+璇勮涓夎仈馃グ馃グ馃グ锛岄紦鍔辨垜浠啓鍑烘洿濂界殑鏁欑▼馃挭鎯冲涔犳洿澶氱簿褰╁疄鐢ㄧ殑鎶€鏈暀绋嬪悧锛熷揩鏉ュ弬瑙傚浘鍏嬬ぞ鍖恒€?/p>
