Python爬蟲是什么

本篇文章給大家分享的是有關(guān)Python爬蟲是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元南充做網(wǎng)站,已為上家服務(wù),為南充各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

一、什么是爬蟲?

按照一定的規(guī)則編寫程序,讓其模擬人使用瀏覽器上網(wǎng),自動抓取互聯(lián)網(wǎng)中數(shù)據(jù)的過程,稱之為爬蟲。

二、爬蟲分類:

通用網(wǎng)絡(luò)爬蟲:通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲(Scalable Web Crawler),爬行整個(gè) Web站點(diǎn),主要為門戶站點(diǎn)搜索引擎和大型 Web 服務(wù)提供商采集數(shù)據(jù)。 這類網(wǎng)絡(luò)爬蟲的爬行范圍和數(shù)量大,對于爬行速度和存儲空間要求較高。

通用網(wǎng)絡(luò)爬蟲的結(jié)構(gòu)大致可以分為頁面爬行模塊 、頁面分析模塊、鏈接過濾模塊、頁面數(shù)據(jù)庫、URL 隊(duì)列、初始 URL 集合幾個(gè)部分。為提高工作效率,通用網(wǎng)絡(luò)爬蟲會采取一定的爬行策略。 常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略。

聚焦網(wǎng)絡(luò)爬蟲:聚焦網(wǎng)絡(luò)爬蟲(Focused Crawler),又稱主題網(wǎng)絡(luò)爬蟲(Topical Crawler),是指有選擇性地爬取預(yù)先定義好的相關(guān)主題頁面。 和通用網(wǎng)絡(luò)爬蟲相比,聚焦爬蟲只需要爬行與主題相關(guān)的頁面,極大地節(jié)省了硬件和網(wǎng)絡(luò)資源 。

增量式網(wǎng)絡(luò)爬蟲:增量式網(wǎng)絡(luò)爬蟲(Incremental Web Crawler)是指對已下載網(wǎng)頁采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 和周期性爬行和刷新頁面的網(wǎng)絡(luò)爬蟲相比,增量式爬蟲只會在需要的時(shí)候爬行新產(chǎn)生或發(fā)生更新的頁面 ,并不重新下載沒有發(fā)生變化的頁面,可有效減少數(shù)據(jù)下載量,及時(shí)更新已爬行的網(wǎng)頁,減小時(shí)間和空間上的耗費(fèi),但是增加了爬行算法的復(fù)雜度和實(shí)現(xiàn)難度。

Deep Web 爬蟲:Web 頁面按存在方式可以分為表層網(wǎng)頁(Surface Web)和深層網(wǎng)頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。 表層網(wǎng)頁是指傳統(tǒng)搜索引擎可以索引的頁面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁為主構(gòu)成的 Web 頁面。Deep Web 是那些大部分內(nèi)容不能通過靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內(nèi)容才可見的網(wǎng)頁就屬于 Deep Web。

Deep Web 爬蟲體系結(jié)構(gòu)包含六個(gè)基本功能模塊 (爬行控制器、解析器、表單分析器、表單處理器、響應(yīng)分析器、LVS 控制器)和兩個(gè)爬蟲內(nèi)部數(shù)據(jù)結(jié)構(gòu)(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示標(biāo)簽/數(shù)值集合,用來表示填充表單的數(shù)據(jù)源。

三、requests模塊基礎(chǔ)使用

requests常用方法:

request():構(gòu)造一個(gè)請求,支撐一下各種方法的基礎(chǔ)方法

get():獲取HTML網(wǎng)頁的主要方法,對應(yīng)于HTTP的GET

head():獲取HTML網(wǎng)頁頭信息的方法,對應(yīng)于HTTP的HEAD

post():向HTML網(wǎng)頁提交OST請求的方法,對應(yīng)于HTTP的POST請求

put():向HTML網(wǎng)頁提交PUT請求的方法,對應(yīng)于HTTP的PUT

patch():向HTML網(wǎng)頁提交局部修改請求,對應(yīng)于HTTP的PATCH

deleete():向HTML頁面提交刪除請求,對應(yīng)于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爬蟲是什么,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:Python爬蟲是什么
本文路徑:http://muchs.cn/article38/gpjisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站手機(jī)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站策劃、小程序開發(fā)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司