日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

爬虫入门

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬蟲入門筆記

      • 爬蟲概念
      • 爬蟲用途
      • 爬蟲分類
        • 通用爬蟲和聚焦爬蟲
        • 積累式爬蟲和增量式爬蟲
        • 表層爬蟲和深層爬蟲
      • 爬蟲實現原理
      • robots.txt文件
      • 網頁請求原理
        • 瀏覽網頁過程
          • 統一資源定位符:
            • 協議頭:
            • 服務器地址和端口:
          • 計算機域名系統:
        • HTTP 網絡請求原理
          • 請求行:
          • 五級標題
        • HTTP抓包工具Fiddler
    • 爬取網絡數據:
      • urllib庫
  • 快速抓取一個網頁
        • 分析urlopen方法
        • data 參數使用:
        • timrout 參數使用
        • 使用HTTPResponse對象
        • 構造Resquest對象

爬蟲概念

爬蟲用途

搜索引擎
爬取圖片
爬取網站公開信息......

爬蟲分類

通用爬蟲和聚焦爬蟲

1:全網爬蟲,爬取種子URL擴充到整個網絡,為門戶站點搜索引擎和大型Web服務提供商采集數據
2:主題網絡爬蟲:選擇性的爬取那些與預先設定好的主題相關的頁面

積累式爬蟲和增量式爬蟲

1:通過遍歷的方式,規模龐大,但抓取的數據不會再隨時間的更新而更新
2:在一定量的規模的基礎上,更新已有集合中果實的網頁,不重新下載沒有變化的網頁,但增加了爬行算法的復雜度和實現難度

表層爬蟲和深層爬蟲

    1:表層網頁,以超鏈接可以到達的靜態頁面為主構成的Web頁面2:大部分內容不能通過靜態連接獲取,隱藏在搜索表單之后的,只有提交一些關鍵詞才能獲取的Web頁面

爬蟲實現原理

1:通用爬蟲:從一個或若干個初始網頁的URL開始,在爬取頁面的過程中,不斷從當前頁面抽取新的URL放入列隊,直到滿足系統的停止提條件
2:聚焦爬蟲:網頁分析算法過濾與主題無關的鏈接

robots.txt文件

通過一個符合robots協議的文件來告訴搜索引擎的哪些頁面可以爬取,那些頁面不能爬取

網頁請求原理

瀏覽網頁過程

統一資源定位符:
協議頭:
                File  訪問本地計算機的資源FTP   訪問共享主機的資源HTTP  超文本傳輸協議HTTPS 安全的ssl加密傳輸協議,訪問遠程網絡資源Mailto訪問電子郵件地址

最常用的是HTTP 與HTTPS

服務器地址和端口:

存放資源的服務器的主機名或IP地址
HTTP程序默認端口號80
HTTPS 443

路徑:是由0個或多個“/”符號隔開的字符串

計算機域名系統:

從域名服務器查找該域名對應的IP地址,然后再向IP地址對應的Web服務器發送資源請求

HTTP 網絡請求原理

請求格式:請求方法 空格 URL 空格 協議版本
頭部字段名: 值 回車符 換行符

請求行:

eg:GET https://www.baidu.com/ HTTP/1.1
請求方法:
1:GET 請求指定的頁面信息,并返回實體主體
2:POST 向指定資源提交數據

            3:HEAD 類似GET,沒有具體內容4:PUT  客戶端傳遞的數據取代指定文件夾的內容5:DELETE  請求服務器刪除指定頁面6:TRACE  回顯服務器收到的請求,用于測試和診斷
五級標題

HTTP抓包工具Fiddler

Fiddler工作原理
以代理網絡服務器形式工作 代理地址:127.0.0.1 端口號8888

爬取網絡數據:

urllib庫

    urllib是Python中請求url連接的官方標準庫,在Python2中主要為urllib和urllib2,在Python3中整合成了urllib。urllib中一共有四個模塊,分別如下:request:主要負責構造和發起網絡請求,定義了適用于在各種復雜情況下打開 URL (主要為 HTTP) 的函數和類error:處理異常parse:解析各種數據格式robotparser:解析robot.txt文件

快速抓取一個網頁

import urllib.request
from urllib import requestresponse=urllib.request.urlopen('http://www.baidu.com')
html=response.read().decode('UTF-8')
print(html)

分析urlopen方法

#response=urllib.request.urlopen(‘http://www.baidu.com’)
‘’’
傳入了一個百度首頁的URL,

urlopen可以接收多個參數
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url: 請求的網址
data:要發送到服務器的數據
timeout:設置網站的訪問超時時間
urlopen返回對象提供方法:

‘’’

data 參數使用:

import urllib.request
import  urllib.parse
data=bytes(urllib.parse.urlencode({'world':'hello'}).encode('utf-8'))
response=urllib.request.urlopen('http://httpbin.org/post',data=data)
print(response.read())

timrout 參數使用

import urllib.request
import  urllib.parse
response=urllib.request.urlopen('http://httpbin.org/post',timeout=1)
print(response.read())

使用HTTPResponse對象

import urllib.requestresponse=urllib.request.urlopen('http://www.itcase.cn')
print(type(response))

#結果:<class ‘http.client.HTTPResponse’>

構造Resquest對象

import urllib.request
# 將url作為Resquest()方法的參數,構造并返回一個Request對象
response=urllib.request.urlopen('http://www.baidu.com')
# 將Resquest對象作為urlopen()方法的參數,發送給服務器并接受響應
response=urllib.request.urlopen(request)
# 使用read()讀取網頁內容html=response.read().decode('UTF-8')
print(html)

總結

以上是生活随笔為你收集整理的爬虫入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。