今天爬一個專門心情愉悅的網站!懂得都懂~
讀者:哦豁!還有這么好的事,快寫快寫!我要心情愉悅!
馬上 ,開始正題吧。
用到的環境:
python 3.8
pycharm 2021專業版 >>> 激活碼
requests >>> pip install requests
parsel >>> pip install parsel
大致分為兩步
一. 分析網站 (思路分析)
1. 確定需要爬取的內容
2. 通過查看源代碼分析數據內容
二. 爬蟲流程
1. 向目標網站發送請求(get,post)
2. 獲取數據(網頁源代碼)
3. 解析網頁(re正則表達式,css選擇器,xpath,bs4,json) 提取每一個詳情頁的鏈接
4. 向詳情頁發送請求
5. 獲取數據(網頁源代碼)
6. 解析網頁 (提取圖片鏈接)
7. 向圖片鏈接發送請求
8. 獲取數據(圖片二進制數據)
9. 保存數據
很多小伙伴在學習Python的過程中因為沒有好的資料或者沒有人解答導致自己學習不下去,所以我這里都給大家准備好了,都在這里領取,包括2021最新的,有啥問題都可以在這里解答或者一起交流,學習啥的~
這就是一個大概的爬蟲流程,咱們直接點,上代碼!
import requests import parsel import re import os for page in range(1, 11): print(f'==================正在爬取第{page}頁==================') # 1.向目標網站發送請求(get,post) response = requests.get(f'https://www.kanxiaojiejie.com/page/{page}') # 2. 獲取數據(網頁源代碼) data_html = response.text # 3. 解析網頁(re正則表達式,css選擇器,xpath,bs4,json) 提取每一個詳情頁的鏈接與標題 zip_data = re.findall('<a href="(.*?)" target="_blank"rel="bookmark">(.*?)</a>', data_html) for url, title in zip_data: print(f'----------------正在爬取{title}----------------') if not os.path.exists('img/' + title): os.mkdir('img/' + title) # 4. 向詳情頁發送請求 resp = requests.get(url) # 5. 獲取數據(網頁源代碼) url_data = resp.text # 6. 解析網頁 (提取圖片鏈接) selector = parsel.Selector(url_data) img_list = selector.css('p>img::attr(src)').getall() for img in img_list: # 7. 向圖片鏈接發送請求 # 8. 獲取數據(圖片二進制數據) img_data = requests.get(img).content # 9. 保存數據 img_name = img.split('/')[-1] with open(f"img/{title}/{img_name}", mode='wb') as f: f.write(img_data) print(img_name, '爬取成功!!!') print(title,'爬取成功!!!')
效果太好看了,我就不展示了,大家自己試試~