免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

爬蟲基本原理-創新互聯

爬蟲基本原理

一、爬蟲是什么?

百度百科和維基百科對網絡爬蟲的定義:簡單來說爬蟲就是抓取目標網站內容的工具,一般是根據定義的行為自動進行抓取, 對網頁或數據的分析與過濾;抓取的網頁URL進行爬行策略

創新互聯IDC提供業務:簡陽服務器托管,成都服務器租用,簡陽服務器托管,重慶服務器租用等四川省內主機托管與主機租用業務;數據中心含:雙線機房,BGP機房,電信機房,移動機房,聯通機房。
爬蟲要做的是什么?
我們所謂的上網便是由用戶端計算機發送請求給目標計算機,將目標計算機的數據下載到本地的過程。

用戶獲取網絡數據的方式是:
      瀏覽器提交請求->下載網頁代碼->解析/渲染成頁面。
爬蟲程序要做的就是:
      模擬瀏覽器發送請求->下載網頁代碼->只提取有用的數據->存放于數據庫或文件中

區別在于:
      我們的爬蟲程序只提取網頁代碼中對我們有用的數據

為什么要做爬蟲 
爬蟲的價值:
互聯網中最有價值的便是數據,比如天貓商城的商品信息,鏈家網的租房信息,雪球網的證券投資信息等等,
這些數據都代表了各個行業的真金白銀,可以說,誰掌握了行業內的第一手數據,誰就成了整個行業的主宰,如果把整個互聯網的數據比喻為一座寶藏,
那我們的爬蟲課程就是來教大家如何來高效地挖掘這些寶藏,掌握了爬蟲技能,你就成了所有互聯網信息公司幕后的老板,換言之,它們都在免費為你提供有價值的數據。
二、爬蟲的基本流程

爬蟲基本原理

#1、發起請求
使用http庫向目標站點發起請求,即發送一個Request
Request包含:請求頭、請求體等

#2、獲取響應內容
如果服務器能正常響應,則會得到一個Response
Response包含:html,json,圖片,視頻等

#3、解析內容
解析html數據:正則表達式,第三方解析庫如Beautifulsoup,pyquery等
解析json數據:json模塊
解析二進制數據:以b的方式寫入文件

#4、保存數據
數據庫
文件
三、請求與響應

爬蟲基本原理

#http協議:http://www.cnblogs.com/qiangyuge/p/8353307.html
#Request:用戶將自己的信息通過瀏覽器(socket client)發送給服務器(socket server)

#Response:服務器接收請求,分析用戶發來的請求信息,然后返回數據(返回的數據中可能包含其他鏈接,如:圖片,js,css等)

#ps:瀏覽器在接收Response后,會解析其內容來顯示給用戶,而爬蟲程序在模擬瀏覽器發送請求然后接收Response后,是要提取其中的有用數據。
四、Request
#1、請求方式:
    常用的請求方式:GET,POST
    其他請求方式:HEAD,PUT,DELETE,OPTHONS

    ps:用瀏覽器演示get與post的區別,(用登錄演示post)

    post與get請求最終都會拼接成這種形式:k1=xxx&k2=yyy&k3=zzz
    post請求的參數放在請求體內:
        可用瀏覽器查看,存放于form data內
    get請求的參數直接放在url后

#2、請求url
    url全稱統一資源定位符,如一個網頁文檔,一張圖片
    一個視頻等都可以用url唯一來確定

    url編碼
    https://www.baidu.com/s?wd=圖片
    圖片會被編碼(看示例代碼)

    網頁的加載過程是:
    加載一個網頁,通常都是先加載document文檔,
    在解析document文檔的時候,遇到鏈接,則針對超鏈接發起下載圖片的請求

#3、請求頭
    User-agent:請求頭中如果沒有user-agent客戶端配置,
    服務端可能將你當做一個非法用戶
    host
    cookies:cookie用來保存登錄信息

    一般做爬蟲都會加上請求頭

#4、請求體
    如果是get方式,請求體沒有內容
    如果是post方式,請求體是format data

    ps:
    1、登錄窗口,文件上傳等,信息都會被附加到請求體內
    2、登錄,輸入錯誤的用戶名密碼,然后提交,就可以看到post,正確登錄后頁面通常會跳轉,無法捕捉到post
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import requests
from urllib.parse import urlencode
# 請求方式
kwords = input("請輸入關鍵字:>>").strip()
res = urlencode({"wd":kwords}) #     # 請求的url,當你在百度輸入中文的時候,你把url拿下來會變成下面的這樣格式的url,所以得urlencode一下
url ="https://www.baidu.com/s?"+res   #https://www.baidu.com/s?wd=%E5%9B%BE%E7%89%87

response = requests.get(
    # 請求的url,當你在百度輸入中文的時候,你把url拿下來會變成下面的這樣格式的url
    url,
    # 請求頭
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/63.0.3239.108 Safari/537.36",
    },
)
with open("a.html","w",encoding="utf-8") as f:
    f.write(response.text)
print(response.status_code)
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import requests
from urllib.parse import urlencode

kwords = input("請輸入關鍵字:>>").strip()
response = requests.get(
    "https://www.baidu.com/s?",
    # 請求的url,當你在百度輸入中文的時候,你把url拿下來會變成下面的這樣格式的url
    params={
        "wd": kwords,
        'pn': 20
    },
    # 請求頭
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
    },
)
with open("b.html", "w", encoding="utf-8") as f:
    f.write(response.text)
print(response.status_code)
五 Response
#1、響應狀態
    200:代表成功
    301:代表跳轉
    404:文件不存在
    403:權限
    502:服務器錯誤

#2、Respone header
    set-cookie:可能有多個,是來告訴瀏覽器,把cookie保存下來

#3、preview就是網頁源代碼
    最主要的部分,包含了請求資源的內容
    如網頁html,圖片
    二進制數據等
六 總結
#1、總結爬蟲流程:
    爬取--->解析--->存儲

#2、爬蟲所需工具:
    請求庫:requests,selenium
    解析庫:正則,beautifulsoup,pyquery
    存儲庫:文件,MySQL,Mongodb,Redis

#3、爬蟲常用框架:
    scrapy

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前題目:爬蟲基本原理-創新互聯
地址分享:http://m.newbst.com/article8/dpidop.html

成都網站建設公司_創新互聯,為您提供網站營銷網站設計公司、微信公眾號、外貿建站、企業建站企業網站制作

廣告

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

成都網站建設公司