爬蟲
安裝requests模塊:pip install requests
1.文字爬蟲
import re # 導入re模塊
import requests # 導入request模塊
response = requests.get('https://ishuo.cn/') # 獲取網頁內容源代碼
data = response.text # 將網頁內容源代碼存放在文本格式記錄data文件中
result_list = re.findall('<div class="content">(.*?)</div>',data) # 找到要爬取的內容(.*?)前后的共同點寫入列表
'''
<div class="content">與人a1人間的信任,就像是紙片,一旦破損,就不會再回到原來的樣子。</div>
<div class="content">(.*?)</div>
<div class="content">一年奔波,塵緣遇了誰;一句珍重,天涯別了誰;一點靈犀,憑欄憶了.</div>
<div class="content">(.*?)</div>
'''
for result in result_list:
print(result) # 分別讀取
2.圖片爬蟲
import re
import requests
count= 0
for i in range(2,4):
# 'http://pic.netbian.com/index_{i}.html'跳轉下一頁繼續爬
respone = requests.get(f'http://pic.netbian.com/index_{i}.html') #獲取網址源代碼內容
data = respone.text #文本形式記錄
# print(data)
result_list = re.findall('src="(.*?)"',data) #從data中獲取所要爬的共同的東西(圖片)
for result in result_list:
if result.endswith('jpg'): # 判斷挑選需要的圖片的格式
result = f'http://pic.netbian.com{result}' # 圖片的網址
# print(result)
img_respone = requests.get(result) # 獲取圖片的內容(二進制記錄的內容)
img_name = result.split('/')[-1] # 每次循環分別記錄圖片名稱
img_data = img_respone.content # 以字符形式記錄圖片
# print(img_data)
with open(img_name,'wb') as f: # 創建名字為img_name的圖片並打開
f.write(img_data) # 以字符形式寫入圖片
f.flush()
count+=1
print(f'爬取了{count}張圖片')
3.視頻爬蟲
import re
import requests
response = requests.get('https://www.ku6.com/index') # 獲取網址代碼
data = response.text # 文本形式記錄網頁代碼
count = 0
# print(data)
result_list = re.findall('<a class="video-image-warp" target="_blank" href="(.*?)">',data) # 找到視頻網址的共同地方
for result in result_list:
# print(result)
if result.startswith('/video'):
# print(result)
result = f'https://www.ku6.com{result}' # 補滿視頻網址
# print(result)
detail_response = requests.get(result) # 獲取單個視頻網址代碼
detail_data = detail_response.text # 文本形式記錄單個視頻網頁代碼
# src="https://rbv01.ku6.com/wifi/o_1dab1luo5oao1jnk1bpnk321hevckvs" >< / video >(????)
# flvURL: "https://rbv01.ku6.com/wifi/o_1dab1luo5oao1jnk1bpnk321hevckvs"
# flvURL: "https://rbv01.ku6.com/wifi/o_1dab1luo5udcici1r2vefj1jksbkvs"
video_url = re.findall('flvURL: "(.*?)"',detail_data) # 找到單個視頻網址代碼
# print(video_url)
video_response = requests.get(video_url[0]) # video_url是包含一個元素的列表
video_data = video_response.content # 以二進制保存視頻
video_name = f"{video_url[0].split('/')[-1]}.mp4" # 編輯視頻名字
with open(video_name, 'wb') as fw: # 打開文件
fw.write(video_data) # 寫入視頻
fw.flush()
count += 1
print(f'爬取了{count}個視頻')