通常在開發過程中不可能一下子就把init寫得完整,先把最易用到的,已經想到的初始化,後面的在編寫其他函式想到時再來init裡編寫
使用不同的佇列會造成bfs和dfs的效果 使用先進先出佇列產生廣度優先搜尋,使用先進後出(棧)產生深度優先搜尋
text:返回的是unicode 型的資料,一般是在網頁的header中定義的編碼形式,如果想要提取文字就用text;
content:返回的是bytes,二級制型的資料;想要提取、檔案,就要用到content;
.text是現成的字串,.content還要編碼,但是.text不是所有時候顯示都正常,這是就需要用.content進行手動編碼。
儲存函式:將爬取內容md5加密儲存到檔案中,注:使用mongodb儲存結果則無需次函式
方式:lxml、beautifulsoup、正則lxml
1 html =lxml.html.fromstring(html_content)2 html_data = html.xpath('
//a/@href
')
beautifulsoup
1 soup = beautifulsoup('lxml')
2 a_list = soup.find_all('a'
)3for a in
a_list:
4print(a['
href
'])
正則
1 url_regex = re.compile(']+href=["\'](.*?)["\']
', re.ignorecase)
2return url_regex.findall(html_content.decode("
utf-8
"))
實現乙個類方法的時候,要注意類方法是否使用了當前類的屬性或其他方法,如果未使用就說明和當前類沒有直接關係,最好獨立出來,當做工具方法
1urljoin:拼接**,若引數2**是正確格式,那麼拼接的結果只是引數2**,引數1**忽略;若引數2**是錯誤格式或是字尾path,那麼和引數1**進行拼接
限流:設定爬取的間隔時間是為了避免ip被封鎖,隨機間隔時間更可靠初始化方法
間隔方法執行流程
2 綜合案例
1.逆序對及應用 2.學會應用排序演算法 3.理解單調佇列及應用 4.理解二分法 1.逆序對 設 a 為乙個有 n 個數字的有序集 n 1 其中所有數字各不相同。如果存在正整數 i,j 使得 1 i j n 而且 a i a j 則 這個有序對稱為 a 的乙個逆序對,也稱作逆序數。使用歸併排序演算法...
ansible roles綜合案例
ansible自1.2版本引入的新特性,用於層次性,結構化地組織playbook。roles能夠根據層次結構自動裝載變數檔案 tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單來講,roles就是通過分別將變數 檔案 任務 模板及處理器放置於...
python爬蟲案例 Python爬蟲案例集合
在python2.x裡面有urllib和urllib2 在python3.x裡面就把urllib和urllib2合成乙個urllib urllib3是在python3.x了裡面新增的第三方擴充套件。import urllib.request 向指定的url位址傳送請求,並返回伺服器響應的類檔案物件 ...