1989年
Guido van Rossum(荷蘭人)html
解釋型語言python
BASIC、Pythonweb
同聲傳譯正則表達式
比較靈活redis
設計哲學數據庫
「優雅」「明確」「簡單」編程
易學、易用緩存
可讀性高cookie
開發哲學數據結構
「用一種方法,最好是隻用一種方法來作一件事」
現代編程語言
面向對象
支持泛型設計
支持函數式編程
豐富的數據結構和第三方函數庫
功能強大
基本的器件
爬蟲調度端
爬蟲url管理器
網頁下載器
網頁解析器
價值數據
url數據
過程
管理待抓取URL集合和已抓取URL集合
防止重複/循環抓取
支持功能:
添加新的url》待抓取
判斷是否已經存在
獲取待爬取url
判斷是否還有待爬取url
將url從待爬取》已爬取
實現方式
存儲到內存
適合小型、我的
python內存
set()
待爬取一個 已爬取一個
直接去除重複的元素
關係數據庫
適合:永久
mySQL
urls(url,is_crawled)
iscrawled判斷是否已經爬取
緩存數據庫
高性能 》 大公司
redis
待爬取url集合:set
已爬取url集合:set
將互聯網下URL對應的網頁下載到本地的工具
基本的網頁下載器
urllib2
python官方基礎模塊
基本下載、cookies、密碼
requests
第三方包更強大
處理一些特殊情景
HTTPCookieProcessor 密碼
ProxyHandler 代理
HTTPSHandler加密
HTTPRedirectHandler 重定向
提取有用數據:
輸出
url列表
有用數據
基本的網頁解析器:
正則表達式
html.parser(自帶)
BeautifulSoup
lxml