爬蟲思路html
1、肯定要爬取的頁面——肯定目標
1.打開含有圖片的網頁
2.打開頁面代碼:右鍵——>查看源代碼
2、分析網頁內容
1.url路徑格式
2.數據格式(常見 html文檔 格式)
3.網頁數據編碼格式(常見 utf-8)
3、代碼實現、運行、修改網絡
代碼實現編碼
1、請求網頁(網頁地址 url)url
1.導入網絡請求庫:import requestsspa
2.請求網頁地址:response = requests.get(url)3d
3.檢查是否請求成功(兩種方法):xml
2、解析文檔樹htm
1.導入Beautiful Soup庫:import bs4blog
2.遍歷文檔樹,解析搜索數據:soup = bs4.BeautifulSoup(response.text,'html_parser')圖片
3.找到要爬取的數據節點(圖片節點):image_urls = soup.select(".image-list-link img")
4.判斷當前節點下是否有圖片;若是有,提取全部‘src’,全部圖片存儲路徑download_url :
print("當前節點下,沒圖片!")
for image_url in image_urls:
download_url = image_url.get('src')
print("下載圖片的路徑:", download_url)
3、存儲爬取的數據
1.導入處理文檔的庫:import os
2.找到分割點,剔除路徑,提取圖片名稱 file_name
split = download_url.split('/')
file_name = os.path.basename(split[len(split)-1])
print("元素:", file_name)
3.構建本地保存,存儲圖片的文件夾 image
dir_name = 'image'
os.makedirs(dir_name,exist_ok=True)
4.返回完整的文件本地存儲路徑 file_path
file_path = os.path.join(dir_name, file_name)
print("file_path:",file_path)
5.檢查當前圖片路徑是否存在,不存在就請求網上圖片的地址,並將圖片存儲到本地路徑中
if not os.path.exists(file_path):
image_url_path = requests.get("https:" + download_url)
6.檢查當前網址是否請求成功,兩種方法:1.print,輸出<Response [200]>表示請求成功;2.status狀態碼,輸出None
print("請求", image_url_path)
image_url_path.raise_for_status()
7.打開文件夾中的文件(file_path);"wb"二進制讀寫模式
image_file = open(file_path,"wb")
8.存儲每一張圖片,獲取網頁中N個值(隨意指定要獲取的數目N,這裏N=1000)
for images in image_url_path.iter_content(1000):
9.把每次遍歷的文件,所有寫入文件中
image_file.write(images)
10.io流,在用完數據後,關閉數據流資源
image_file.close()