《Python網絡爬蟲》 課件 第5單元-爬蟲優化策略_第1頁
《Python網絡爬蟲》 課件 第5單元-爬蟲優化策略_第2頁
《Python網絡爬蟲》 課件 第5單元-爬蟲優化策略_第3頁
《Python網絡爬蟲》 課件 第5單元-爬蟲優化策略_第4頁
《Python網絡爬蟲》 課件 第5單元-爬蟲優化策略_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python網絡爬蟲第五單元爬蟲優化策略教學概述概述

為了提升網絡爬蟲的穩定性,我們往往會在基礎爬蟲程序中做一些優化策略,比如:

設置下載延遲;

優化Cookie存儲;

優化User-Agent;

使用IP代理池;

模擬用戶行為等。優化網絡爬蟲程序不僅僅是要提升網絡爬蟲的穩定性,另一個優化策略就是提升網絡爬蟲的效率。在第四部分我們已經就反爬蟲策略對應的穩定性策略做了處理,本次內容主要講解通過Scrapy和Redis結合提高網絡爬蟲的效率,并處理重復請求的自動過濾。第五單元爬蟲優化策略分布式爬取電影數據01情境一:分布式爬取電影數據01030204情境概述知識準備案例講解總結PART01情境概述情境一:分布式爬取電影數據情境概述學習情境描述教學情境描述:在已有網絡爬蟲知識和技術的基礎上,通過Redis數據源或目標數據存儲,完成自動去重;將Redis和Scrapy結合,將多層級批量數據采集程序切換成分布式爬蟲程序,并進行異步網絡請求,提高網絡爬蟲的效率。關鍵知識點:Redis庫環境管理;Redis數據存儲。關鍵技能點:Redis存儲數據。情境一:分布式爬取電影數據情境概述本節課的學習目標理解Scrapy網絡爬蟲框架及原理。掌握Scrapy項目系統配置及爬蟲策略配置。掌握本地Redis的安裝配置。掌握Python模塊庫(Redis等)安裝管理應用。能根據實際網頁源,分析網絡爬蟲請求限制。能使用Scrapy+Redis進行分布式數據采集工作。能使用XPath規范格式化文檔并獲取目標數據。能使用PyMySQL完成MySQL結構化數據存儲。情境一:分布式爬取電影數據情境概述本節課的任務書安裝配置Redis本地環境。安裝管理Redis庫。完成Scrapy和Redis項目整合。完成Scrapy+Redis分布式數據采集。情境一:分布式爬取電影數據PART02知識準備情境一:分布式爬取電影數據知識準備引導問題都有哪些方式可以優化網絡爬蟲程序?了解什么是分布式爬蟲,分布式爬蟲為什么能優化網絡爬蟲程序?Redis框架體系結構及原理是什么?Scrapy和Redis如何組合構建網絡爬蟲程序?情境一:分布式爬取電影數據知識準備知識點介紹ScrapyRedis情境一:分布式爬取電影數據知識準備Redis情境一:分布式爬取電影數據Redis介紹Redis是一個開源(BSD許可)的,內存中的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。它支持多種類型的數據結構,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)與范圍查詢,bitmaps,hyperloglogs和地理空間(geospatial)索引半徑查詢。Redis內置了復制(replication),LUA腳本(Luascripting),LRU驅動事件(LRUeviction),事務(transactions)和不同級別的磁盤持久化(persistence),并通過Redis哨兵(Sentinel)和自動分區(Cluster)提供高可用性(highavailability)。Redis是一個開源的使用ANSIC語言編寫、遵守BSD協議、支持網絡、可基于內存、分布式、可選持久性的鍵值對(Key-Value)存儲數據庫,并提供多種語言的API。知識準備Redis安裝與配置情境一:分布式爬取電影數據下載軟件

在Github上查找RedisWindows平臺編譯版本,當前最新穩定版為5.0.10,地址為:安裝軟件運行下載的Redis安裝包:Redis-x64-5.0.10.msi,選定安裝地址,默認安裝即可。安裝過程如下:/tporadowski/redis/releases案例講解情境一:分布式爬取電影數據知識準備

情境一:分布式爬取電影數據驗證安裝驗證Redis安裝,在CMD中啟動Redis服務。效果如圖:知識準備

情境一:分布式爬取電影數據Redis配置在安裝Redis過程中,有選項選擇是否將Redis安裝路徑添加到系統環境中,若未選擇,則將其添加在Path下。效果如圖:知識準備Redis命令情境一:分布式爬取電影數據redis-cli

redis-cli命令指的是Redis安裝目錄下的redis-cli.exe文件,此命令用于在Redis服務上執行操作,而要在redis服務上執行命令需要一個redis客戶端。

Redis客戶端的基本語法為:redis-cli[-hhost][-pport][-apassword]知識準備情境一:分布式爬取電影數據Keys命令組Keys中的命令用于管理redis鍵。命令的基本語法為:RedisKeys命令組的基本命令:COMMANDKEY[OPTION]知識準備

情境一:分布式爬取電影數據知識準備情境一:分布式爬取電影數據ListsRedis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊),一個列表最多可以包含232

-1個元素。RedisLists命令組的基本命令:知識準備情境一:分布式爬取電影數據StringsRedis字符串數據類型的相關命令用于管理redis字符串值。RedisStrings命令組的基本命令:知識準備Python中使用Redis情境一:分布式爬取電影數據安裝Redis庫連接RedisPython連接Redis可以通過redis庫的Redis()函數,也可以通過ConnectionPool()線程池的方式。連接Redis語法如下:pipinstallredisredis.Redis(host:str='localhost',port:int=6379,db:int=0,password:Any=None,socket_timeout:Any=None,socket_connect_timeout:Any=None,socket_keepalive:Any=None,socket_keepalive_options:Any=None,connection_pool:Any=None,unix_socket_path:Any=None,encoding:str='utf-8',encoding_errors:str='strict',charset:Any=None,errors:Any=None,decode_responses:bool=False,retry_on_timeout:bool=False,ssl:bool=False,ssl_keyfile:Any=None,ssl_certfile:Any=None,ssl_cert_reqs:str='required',ssl_ca_certs:Any=None,ssl_check_hostname:bool=False,max_connections:Any=None,single_connection_client:bool=False,health_check_interval:int=0,client_name:Any=None,username:Any=None)知識準備

情境一:分布式爬取電影數據Setset()函數是為指定key設置指定value,做數據存儲。語法如下:也可以調用mset()一次性設置多個值。Getget()函數是獲取指定key對應存儲的值,若key不存在,返回None。語法如下:也可以調用mget()一次性獲取多個值。pipinstallredismset(*args,**kwargs)get(name)mget(keys,*args)PART03案例講解情境一:分布式爬取電影數據案例講解分布式爬取電影數據情境一:分布式爬取電影數據開發步驟:確定數據源確定目標數據安裝環境構建項目編寫數據采集程序運行程序效果截圖案例講解分布式爬取電影數據情境

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論