# 爬蟲思路:首先找到約會吧的鏈接地址,
# 然后獲取網頁,從中提取出每個發訊息用戶的詳情頁,找到存放圖片的詳情頁鏈接,
# 根據地址爬取圖片
import requests,parsel
# 用來獲取約會吧主頁的函式
def get_yuehuiba_url(url,headers):
# 通過requests庫獲取網頁html代碼
response = requests.get(url = url,headers = headers).text
# 通過parsel決議出我們需要的內容
html = parsel.Selector(response)
title_url = html.xpath('//div[@]/div/a/@href').getall()
print(title_url)
return title_url
# 用來獲取每個人詳情頁
def get_image(headers,title_url):
# 剛才決議出的詳情頁的url鏈接,需要加上貼吧的主頁鏈接才可以訪問
second_url = "https://tieba.baidu.com"
# title_url中存放的是每一個詳情頁的鏈接
result_lists = []
for url in title_url:
all_url = second_url + url
print("當前的貼子鏈接:",all_url)
# 再次發送鏈接,進入帖子內部
response_2 = requests.get(url = all_url,headers = headers).text
# 第二次決議,決議出每一個妹子照片的鏈接,并存放在串列中
response_2_data = https://www.cnblogs.com/cong12586/p/parsel.Selector(response_2)
result_list = response_2_data.xpath('//cc/div/img[@]/@src').getall()
result_lists.append(result_list)
print(result_list)
return result_lists
# 獲取每張妹子粘片并保存
def save_image(result_lists,headers):
for result_list in result_lists:
for li in result_list:
# 通過訪問每一個詳情頁的鏈接,下載妹子的照片,
# 這里和上邊不一樣,這里獲取的是二進制資料
print(li)
img_data = https://www.cnblogs.com/cong12586/p/requests.get(url = li,headers = headers).content
file_name = li.split("/")[-1]
file_name = r"D:\python\貼吧美女\{}.jpg".format(file_name)
# 然后寫入特定的檔案夾
with open(file_name,mode = 'wb') as f:
f.write(img_data)
print("正在保存",file_name)
if __name__ == "__main__":
# 定義變數存放約會吧的鏈接地址
yuehuiba_url = "https://tieba.baidu.com/f?ie=utf-8&kw=%E7%BA%A6%E4%BC%9A%E5%90%A7&fr=search"
headers = {
"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"
}
title_url = get_yuehuiba_url(yuehuiba_url,headers)
result_lists = get_image(headers,title_url)
save_image(result_lists,headers)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69443.html
標籤:Python
下一篇:【Python】串列
