您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Python爬蟲是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一、什么是爬蟲?
按照一定的規則編寫程序,讓其模擬人使用瀏覽器上網,自動抓取互聯網中數據的過程,稱之為爬蟲。
二、爬蟲分類:
通用網絡爬蟲:通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),爬行整個 Web站點,主要為門戶站點搜索引擎和大型 Web 服務提供商采集數據。 這類網絡爬蟲的爬行范圍和數量大,對于爬行速度和存儲空間要求較高。
通用網絡爬蟲的結構大致可以分為頁面爬行模塊 、頁面分析模塊、鏈接過濾模塊、頁面數據庫、URL 隊列、初始 URL 集合幾個部分。為提高工作效率,通用網絡爬蟲會采取一定的爬行策略。 常用的爬行策略有:深度優先策略、廣度優先策略。
聚焦網絡爬蟲:聚焦網絡爬蟲(Focused Crawler),又稱主題網絡爬蟲(Topical Crawler),是指有選擇性地爬取預先定義好的相關主題頁面。 和通用網絡爬蟲相比,聚焦爬蟲只需要爬行與主題相關的頁面,極大地節省了硬件和網絡資源 。
增量式網絡爬蟲:增量式網絡爬蟲(Incremental Web Crawler)是指對已下載網頁采取增量式更新和只爬行新產生的或者已經發生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 和周期性爬行和刷新頁面的網絡爬蟲相比,增量式爬蟲只會在需要的時候爬行新產生或發生更新的頁面 ,并不重新下載沒有發生變化的頁面,可有效減少數據下載量,及時更新已爬行的網頁,減小時間和空間上的耗費,但是增加了爬行算法的復雜度和實現難度。
Deep Web 爬蟲:Web 頁面按存在方式可以分為表層網頁(Surface Web)和深層網頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。 表層網頁是指傳統搜索引擎可以索引的頁面,以超鏈接可以到達的靜態網頁為主構成的 Web 頁面。Deep Web 是那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內容才可見的網頁就屬于 Deep Web。
Deep Web 爬蟲體系結構包含六個基本功能模塊 (爬行控制器、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個爬蟲內部數據結構(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示標簽/數值集合,用來表示填充表單的數據源。
三、requests模塊基礎使用
requests常用方法:
request():構造一個請求,支撐一下各種方法的基礎方法
get():獲取HTML網頁的主要方法,對應于HTTP的GET
head():獲取HTML網頁頭信息的方法,對應于HTTP的HEAD
post():向HTML網頁提交OST請求的方法,對應于HTTP的POST請求
put():向HTML網頁提交PUT請求的方法,對應于HTTP的PUT
patch():向HTML網頁提交局部修改請求,對應于HTTP的PATCH
deleete():向HTML頁面提交刪除請求,對應于HTTP的DELETE
1、爬取百度頁面
import requests import os BASE_PATH = os.path.abspath(os.path.dirname(__file__)) BASE_PATH = os.path.join(BASE_PATH,'html') file_name = os.path.join(BASE_PATH,'demo.html') url = 'https://www.baidu.com/s?wd=python' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0. 3729.131 Safari/537.36' } response = requests.get(url=url,headers=headers) response.encoding = response.apparent_encoding with open(file_name,mode='w',encoding='utf-8') as f: f.write(response.text)
2、獲取KFC北京的位置信息
import requests url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0. 3729.131 Safari/537.36' } for i in range(1,8): data = { "cname":"", "pid":"", "keyword": "北京", "pageIndex": i, "pageSize": '10' } response = requests.post(url,headers=headers,data=data).json() print(f'第{i}頁') for j in response.get('Table1'): print(j['addressDetail'])
以上就是Python爬蟲是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。