1. 程式人生 > >爬蟲基本原理

爬蟲基本原理

獲取 get 模式 like family asc shell ros text

推薦:(http://cuiqingcai.com/1052.html),本文是我在看了靜覓的視屏教程後的筆記.

技術分享

1、一個HTML頁面裏可以有多個URL地址;

2一個URL只能指向一個HTML頁面。

3.HTTP是傳輸協議

Request與Response的流程

技術分享

(1)遊覽器發送消息給該網址所在的服務器,這個過程叫做HTTP Request.

(2)服務器收到遊覽器發送的消息後,根據遊覽器發送消息的內容,做出相應的處理,然後把這個消息傳送費遊覽器.這個過程叫做HTTP Response.

(3)遊覽器收到服務器的Response信息後,會對信息進行相應的處理,然後展示.

Request包含的內容

技術分享

Response的內容

技術分享

Request 和 response的過程

import requests
headers = {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36}
response = requests.get(http://jandan.net/ooxx,headers = headers)
print(response.text)
#打印源代碼
print(response.headers)
#
打印請求頭 print(response.status_code) #打印請求狀態碼

怎麽抓取數據?

技術分享

response = requests.get(http://wx3.sinaimg.cn/mw600/006d1Z6yly1fkaolncvg4j30zk0npn1u.jpg)
#獲取HTML
print(response.content)
#以二進制格式打印出來
with open(1.jpg,wb) as f:
#open第一個參數為名稱第二個參數為命令  ‘wb‘以二進制格式寫入
    f.write(response.content)
    f.close()

解析方式

技術分享

怎麽解決JavaScript渲染的問題?

技術分享

from selnium import webdriver
#使用selnium庫 shell模式下 pip install selnium 再下載chromedriver並放在加入pyth的環境的文件夾
driver = webdriver.Chrome()
driver.get(URL)
#使用chrome跳轉到你想要的網頁
print(driver.page_source)

保存數據

技術分享

爬蟲基本原理