首頁 > 軟體

用python爬取電腦桌布範例程式碼

2022-02-14 13:01:13

前言

        聽說好的程式設計習慣是從寫文章敲程式碼開始的,下面給大家介紹一個簡單的python爬取圖片的過程,超簡單。我都不好意思寫,但是主要是捋一下爬取過程。本文只是技術交流的,請不要商業用途哈

一、用到的工具

  

 使用python爬蟲工具,我使用的工具就是學習python都會用的的工具,一個是pycharm,一個是chrome,使用chrome只是我的個人習慣,也可以用其他的瀏覽器,我除了這兩個軟體還用到了window自帶的瀏覽器。

二、爬取步驟與過程

1.用到的庫

爬取圖片我主要用到了爬蟲初學的requests請求模組和xpath模組,這用xpath只是為了方便找圖片的連結和路徑的,當然也可以用re模組和Beautiful Soup模組這些。time模組是為了後續下載圖片做延時的,畢竟要保護下網站,Pinyin模組裡面有個程式要將中文轉成拼音。

import time
import pinyin
import requests
from lxml import etree    #這是匯入xpath模組

2.解析程式碼

首先輸入選擇圖片型別和圖片的也網址頁碼,因為一種型別的圖片有很多圖片的,一個網頁是放不下的這就需要選擇多個頁碼。

type=input("請輸入圖片的型別:")
type=pinyin.get(f"{type}",format="strip")   #這是將輸入的中文轉成拼音,format是為了去掉拼音的聲標
m=input("請輸入圖片的頁碼:")        #圖片型別所在網頁的頁碼

接下來就請求網址了,其中先獲取網址的原始碼,然後通過xpath獲取圖片的連結和名字,為什麼是小圖片呢,因為一個網頁要顯示很多圖片,如果是大圖片,一個網頁只能放一張的。

url=f"https://pic.netbian.com/4k{type}/index_{m}.html"
header={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"
}
resp=requests.get(url=url,headers=header)
resp.encoding="gbk"
tree=etree.HTML(resp.text)
tu_links=tree.xpath('//*[@id="main"]/div[3]/ul/li/a/@href')    #小圖片的連結
tu_names=tree.xpath('//*[@id="main"]/div[3]/ul/li/a/b/text()')  #圖片的名字

接下來就是一層一層的找圖片的連結,和下載地址,也就是一個查詢的迴圈操作。

    tu_link.split()
    child_url = url.split(f'/4k{type}/')[0] + tu_link       #將小圖片的部分連結和主連結拼接起來
    resp1 = requests.get(url=child_url, headers=header)     #開啟小圖片的網址
    resp1.encoding = 'gbk'
    tree1 = etree.HTML(resp1.text)
    child_tu_link= tree1.xpath('/html/body/div[2]/div[1]/div[2]/div[1]/div[2]/a/img/@src')     #獲取大圖片的部分連結
    child_tu_link=child_tu_link[0]
    child_tu_link_over=url.split(f'/4k{type}/')[0]+child_tu_link        #將大圖片連結拼接起來
    resp2=requests.get(child_tu_link_over,headers=header)       #獲取大圖片

最後就是下載圖片啦

    with open(f"桌布圖片/{name}.jpg",mode="wb") as f:           #接下來就是下載了
        f.write(resp2.content)

來看看最後的效果吧

3.最後上全部的程式碼啦

這就是簡簡單單的爬取圖片的程式碼,完全沒有用到什麼複雜的知識,簡簡單單,你值得擁有哈哈

import time
import pinyin
import requests
from lxml import etree    #這是匯入xpath模組
type=input("請輸入圖片的型別:")
type=pinyin.get(f"{type}",format="strip")   #這是將輸入的中文轉成拼音,format是為了去掉拼音的聲標
m=input("請輸入圖片的頁碼:")        #圖片型別所在網頁的頁碼
url=f"https://pic.netbian.com/4k{type}/index_{m}.html"
header={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36"
}
resp=requests.get(url=url,headers=header)
resp.encoding="gbk"
tree=etree.HTML(resp.text)
tu_links=tree.xpath('//*[@id="main"]/div[3]/ul/li/a/@href')    #小圖片的部分連結
tu_names=tree.xpath('//*[@id="main"]/div[3]/ul/li/a/b/text()')  #圖片的名字
n=0
for tu_link in tu_links:
    tu_link.split()
    child_url = url.split(f'/4k{type}/')[0] + tu_link       #將小圖片的部分連結和主連結拼接起來
    resp1 = requests.get(url=child_url, headers=header)     #開啟小圖片的網址
    resp1.encoding = 'gbk'
    tree1 = etree.HTML(resp1.text)
    child_tu_link= tree1.xpath('/html/body/div[2]/div[1]/div[2]/div[1]/div[2]/a/img/@src')     #獲取大圖片的部分連結
    child_tu_link=child_tu_link[0]
    child_tu_link_over=url.split(f'/4k{type}/')[0]+child_tu_link        #將大圖片連結拼接起來
    resp2=requests.get(child_tu_link_over,headers=header)       #獲取大圖片
    name=tu_names[n]
    with open(f"桌布圖片/{name}.jpg",mode="wb") as f:           #接下來就是下載了
        f.write(resp2.content)
        print(f"{name}          下載完畢!!")
        n+=1        #每下載一張圖片n就加1
        time.sleep(1.5)
        resp1.close()
print("全部下載完畢!!")       #over!over!
resp.close()        #最後記得要把所有請求的響應關閉
 
 
 
 

注意:本文章只用於技術交流,請勿用於商用,如有違反,吾概不負責!!!

總結

到此這篇關於用python爬取電腦桌布範例程式碼的文章就介紹到這了,更多相關python爬取電腦桌布內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com