Python《必應bing桌面圖片爬取》
桌面桌布,來自於bing,必應的桌布網址。https://bing.ioliu.cn/
每一頁都有12張照片,每個照片有對應的download高清大圖的地址,有多個分頁。
但是,麻煩的是開啟後,按不了F12,於是用python直接爬取頁面,才發現是這樣的。
123就是F12的code,這個網址禁止了F12,禁止了ctrl+shirt+i,禁止了ctrl+s。
但是這不影響啊,我們用urrlib.request可以獲得整個頁面的資訊。
每個圖片的文字描述資訊是在< h3>元素裡的。
每個圖片的下載地址是在< a class = “ctrl download”>元素裡的
總頁數資訊是在< div class=“page”>的< span>裡的。
每一頁面的url如下是:
https://bing.ioliu.cn/?p=1
https://bing.ioliu.cn/?p=2
https://bing.ioliu.cn/?p=3
https://bing.ioliu.cn/?p=4
完整程式碼如下:
import time
from concurrent.futures import ThreadPoolExecutor
import time
import os
import re
from urllib.parse import urlencode
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
rootrurl = 'https://bing.ioliu.cn/?'
save_dir = 'D:/estimages/'
headers = {
"Referer": rootrurl,
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive'
} ###設定請求的頭部,偽裝成瀏覽器
def saveOneImg(dir, img_url, title):
new_headers = {
"Referer": img_url,
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive'
} ###設定請求的頭部,偽裝成瀏覽器,實時換成新的 header 是為了防止403 http code問題,防止反盜鏈,
try:
img = requests.get(img_url, headers=new_headers) # 請求圖片的實際URL
if (str(img).find('200') > 1):
with open(
'{}/{}.jpg'.format(dir, title), 'wb') as jpg: # 請求圖片並寫進去到本地檔案
jpg.write(img.content)
print(img_url)
jpg.close()
return True
else:
return False
except Exception as e:
print('exception occurs: ' + img_url)
print(e)
return False
def getSubTitleName(str):
# cop = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]") # 匹配不是中文、大小寫、數字的其他字元
cop = re.compile("[^\u4e00-\u9fa5]") # 匹配不是中文、大小寫、數字的其他字元
string1 = cop.sub('', str) # 將string1中匹配到的字元替換成空字元
return string1
def getOnePage(i):
params = {
'p': i,
}
url = rootrurl + urlencode(params)
print(url)
html = BeautifulSoup(requests.get(url, headers=headers).text, features="html.parser")
titles = html.find_all('h3')
lis = html.find_all('a', {'class': 'ctrl download'})
i = 0
for a in lis:
saveOneImg(save_dir, rootrurl[:-2] + a.get('href'), getSubTitleName(titles[i].get_text()))
i = i + 1
def getNumOfPages():
html = BeautifulSoup(requests.get(rootrurl, headers=headers).text, features="html.parser")
return int(html.find('div', {'class': 'page'}).find('span').get_text().split('/')[1])
if __name__ == '__main__':
getTotal = getNumOfPages()
for i in range(1, getTotal+1):
getOnePage(i)
pass
效果如下:
相關文章
- Java爬蟲 爬取bing必應每日一圖背景圖下載到本地(HttpClient+Jsoup+Jackson)Java爬蟲HTTPclientJS
- Python應用開發——爬取網頁圖片Python網頁
- 利用Python爬取必應桌布Python
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- Python爬蟲入門【5】:27270圖片爬取Python爬蟲
- Python爬蟲學習(6): 爬取MM圖片Python爬蟲
- Python爬蟲新手教程: 知乎文章圖片爬取器Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- Python爬蟲入門-爬取pexels高清圖片Python爬蟲
- Java爬蟲批量爬取圖片Java爬蟲
- 爬取必應翻譯
- python3爬取1024圖片Python
- 新手爬蟲教程:Python爬取知乎文章中的圖片爬蟲Python
- Python爬蟲遞迴呼叫爬取動漫美女圖片Python爬蟲遞迴
- Python 爬蟲入門 (二) 使用Requests來爬取圖片Python爬蟲
- node:爬蟲爬取網頁圖片爬蟲網頁
- 爬蟲---xpath解析(爬取美女圖片)爬蟲
- Python爬取微博資料生成詞雲圖片Python
- 圖片爬取實戰一
- python 爬蟲之requests爬取頁面圖片的url,並將圖片下載到本地Python爬蟲
- Python《回車桌面圖片》Python
- Python爬蟲入門【4】:美空網未登入圖片爬取Python爬蟲
- Python網路爬蟲2 - 爬取新浪微博使用者圖片Python爬蟲
- 爬取微博圖片資料存到Mysql中遇到的各種坑mysql儲存圖片爬取微博圖片MySql
- 利用Python爬取攝影網站圖片,切勿商用Python網站
- Python《爬取手機和桌面桌布》Python
- 爬蟲 Scrapy框架 爬取圖蟲圖片並下載爬蟲框架
- python爬取網圖Python
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Python資料爬蟲學習筆記(11)爬取千圖網圖片資料Python爬蟲筆記
- Python爬取王者榮耀英雄皮膚高清圖片Python
- 網路爬蟲---從千圖網爬取圖片到本地爬蟲
- Python爬去貼吧圖片Python
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- 【python--爬蟲】千圖網高清背景圖片爬蟲Python爬蟲
- Python爬蟲之網頁圖片Python爬蟲網頁
- Python爬蟲入門教程 4-100 美空網未登入圖片爬取Python爬蟲
- 蘇寧易購網址爬蟲爬取商品資訊及圖片爬蟲