python爬取一組小姐姐圖片實(shí)例
前言
前段時(shí)間我有個(gè)朋友看到一些小姐姐的照片,想全部下載下來,叫我?guī)蛡€(gè)忙。于是花費(fèi)了半天給他全部下載了下來。

引入庫
import time import requests from lxml import etree
這三個(gè)庫是為了讓我們在請求別人網(wǎng)站的時(shí)候,讓程序休息一會,避免別人的網(wǎng)站會攔截或者崩潰和將得到的頁面源代碼進(jìn)行解析。
網(wǎng)頁分析

利用瀏覽器的開發(fā)者模式,對頁面進(jìn)行分析,找出我們所需要的每個(gè)圖片封面url
href = tree.xpath('//*[@id="features"]/div/div[1]/div/div[1]/a/@href')我們得到了封面的url后,但這還不是我們所需要的,我們所需要的是超鏈接里面的圖片

我們進(jìn)入后,發(fā)現(xiàn)每張圖片都在<p></p>里面,如何我們利用循環(huán)得到每張圖片的url地址
for url_img in href:
img_url = requests.get(url_img,headers=head)
# print(img_url.text)
time.sleep(1)
t = etree.HTML(img_url.text)
url_list = t.xpath("/html/body/section/div/div/div[1]/div[2]/p[2]/img/@src")剩下的就很簡單了,我們只需對文件進(jìn)行保存就得到我們想要的結(jié)果了。
with open(f"./img/{name}",mode="wb") as f:
f.write(download_img.content)
print("正在下載:" +name)
time.sleep(1)
總結(jié)
但同步下載非常慢,我們可以寫個(gè)多線程或者異步協(xié)程來幫助我們下載得更快。
我知道還有很多不足,有沒有更簡潔的寫法,希望大佬們能指出,謝謝!
完整代碼
import time
import requests
from lxml import etree
def get_page_url():
for i in range(1, 4): # 循環(huán)3頁
url = f"https://mm.tvv.tw/category/xinggan/{i}/"
# 請求頁面得到源代碼
res = requests.get(url,headers=head)
# 對源代碼進(jìn)行解析
tree = etree.HTML(res.text)
# 得到每個(gè)圖片的封面url(href)
href = tree.xpath('//*[@id="features"]/div/div[1]/div/div[1]/a/@href')
# print("-------------------------------------------------------")
time.sleep(3)
for url_img in href:
img_url = requests.get(url_img,headers=head)
# print(img_url.text)
time.sleep(1)
t = etree.HTML(img_url.text)
url_list = t.xpath("/html/body/section/div/div/div[1]/div[2]/p[2]/img/@src")
# print(url_list)
time.sleep(1)
for url_src in url_list:
get_img(url_src)
def get_img(url):
name = url.rsplit("/",1)[1]
time.sleep(2)
download_img = requests.get(url,headers=head)
with open(f"./img/{name}",mode="wb") as f:
f.write(download_img.content)
print("正在下載:" +name)
time.sleep(1)
f.close()
if __name__ == '__main__':
head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"}
get_page_url()到此這篇關(guān)于python爬取一組小姐姐圖片實(shí)例的文章就介紹到這了,更多相關(guān)python爬取圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用TensorFlow實(shí)現(xiàn)lasso回歸和嶺回歸算法的示例
本篇文章主要介紹了用TensorFlow實(shí)現(xiàn)lasso回歸和嶺回歸算法的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
Python 詳解爬取并統(tǒng)計(jì)CSDN全站熱榜標(biāo)題關(guān)鍵詞詞頻流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python爬取CSDN全站綜合熱榜標(biāo)題,順便統(tǒng)計(jì)關(guān)鍵詞詞頻,大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
Python3使用騰訊云文字識別(騰訊OCR)提取圖片中的文字內(nèi)容實(shí)例詳解
這篇文章主要介紹了Python3使用騰訊云文字識別(騰訊OCR)提取圖片中的文字內(nèi)容方法詳解,需要的朋友可以參考下2020-02-02
python中的load、loads實(shí)現(xiàn)反序列化示列
這篇文章主要介紹python中的load、loads實(shí)現(xiàn)反序列化,在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型,下面來看詳情內(nèi)容吧2021-10-10
Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊
這篇文章主要介紹了Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊,首先創(chuàng)建一個(gè)以christmastree的命名的模塊并定義一個(gè)全局變量創(chuàng)建一個(gè)名稱為fun_christmastree()的函數(shù)展開詳情,感興趣的朋友可以參考一下2022-06-06
python根據(jù)經(jīng)緯度計(jì)算距離示例
這篇文章主要介紹了python根據(jù)經(jīng)緯度計(jì)算距離示例, 計(jì)算兩點(diǎn)之間距離,需要的朋友可以參考下2014-02-02
Python中Dict兩種實(shí)現(xiàn)的原理詳解
在Python中,?Dict是一系列由鍵和值配對組成的元素的集合,?它是一個(gè)可變?nèi)萜髂P停梢源鎯θ我忸愋蛯ο蟆1疚闹饕榻B了Dict兩種實(shí)現(xiàn)的原理,感興趣的可以了解一下2023-03-03
詳解如何在Apache中運(yùn)行Python WSGI應(yīng)用
在生產(chǎn)環(huán)境上,一般會使用比較健壯的Web服務(wù)器,如Apache來運(yùn)行我們的應(yīng)用,本文中我們就會介紹如何使用Apache模塊mod_wsgi來運(yùn)行Python WSGI應(yīng)用。感興趣的小伙伴們可以參考一下2019-01-01

