一、爬蟲基本原理
1.什么是爬蟲
? 爬蟲就是爬取數據
2.什么是互聯網?
? 就是由一堆網絡設備,把一臺臺的電腦互聯在一起
3.互聯網建立的目的
? 數據的傳遞和數據共享
4.什么是數據?
? 例如:
? 電商平臺的商業信息(淘寶、京東、亞馬遜)
? 鏈家、自如等租房信息
? 股票政券投資信息
? 12306票務信息
? ....
4.1什么是進程和線程
? 打比方:打開QQ是進程
? QQ中的很多群是線程
5.什么是上網
? 普通用戶:
? 打開瀏覽器
? →輸入網址
? →往目標主機發送請求
? →返回響應數據
? →把數據渲染到瀏覽器中
? 爬蟲程序:
? 模擬瀏覽器
? →往目標主機發送請求
? →返回響應數據
? →提取有價值的信息
? →保存數據(文件寫入本地、持久化到數據庫)
6.爬蟲的全過程
? 1.發送請求
? 請求庫:Requests/Selenium
? 2.獲取響應數據
? 3.解析數據
? 解析庫:BeautifulSoup4
? 4.保存數據
? 存儲庫:文件保存/MongoDB
總結
假如把互聯網中的數據比作一座寶藏,爬蟲其實就是在挖取寶藏
二、Requests請求庫
1.安裝
方法一:pip3 install requests
如果報錯,則是環境變量沒有配好,可以在pycharm中下載
方法二:
2.分析請求流程(模擬瀏覽器)
? -百度
? 1.請求url:https://www.baidu.com/
? 2.請求方式
? 3.響應狀態碼
三、爬蟲三部曲(測試)
1.發送請求
# 發送請求
def get_page(url):response = requests.get(url)return response
2.解析數據
#解析主頁頁面
import re
def pare_index(html):#findall 匹配所有# re.findall('正則匹配規則','匹配文本','匹配模式')#re.S 對全部文本進行搜索detail_urls = re.findall('<div class="items"><a class="imglink" href="(.*?)"',html,re.S)return detail_urls# 解析詳情頁
def pare_detail(html):detail_urls = re.findall('<sourse src="(.*?)">',html,re.S)return detail_urls
3.保存數據
#保存文件
import uuid
def save_movie(content):with open(f'{uuid.uuid4()}','wb') as f:f.write(content)print("視頻下載完畢")