Python爬取某网站高清大图
前言
最近因为疫情原因天天在家用电脑上网课,这电脑壁纸看得我头疼,于是就想下一些壁纸来让电脑定时更换,自己也放松放松眼睛。但是从壁纸网站手动下载图片实在太费劲,点来点去十分麻烦,有同学问我为什么不用壁纸软件,我觉得某些壁纸软件太鸡肋了,占空间不说,还时不时给我推荐一些什么“一刀999”的东西,烦死人了。于是就想用python编写一个脚本自动爬取图片
分析过程
这里我选取必应壁纸网站https://bing.ioliu.cn/?这网站比较简单,每一页有12张图片,而且每一页的链接差别较小https://bing.ioliu.cn/?p=i,这里i是页数,也就是大于2小于…的一个整数。
进一步发现每一页每张图片的链接就是标签img的src属性的值,也就是说我们可以把每一页的12个图片链接提取出来,然后设定爬取页数,最后下载
代码编写
import requests
from bs4 import BeautifulSoup
headers={'Sec-Fetch-Dest': 'script',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
#获取图片链接
def get_urls():
imgurls=[]
for i in range(2,12):
url="https://bing.ioliu.cn/?p="+str(i)
try:
r=requests.get(url,headers=headers)
except:
print("error")
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
post=soup.find_all('img')
for j in range(12):
imgurls.append(post[j].attrs['src'])
return imgurls
#下载图片
def download(urls):
for i in range(120):
req=requests.get(urls[i],headers=headers)
with open('壁纸'+str(i)+'.jpg','wb') as f:
f.write(req.content)
imgurls=get_urls()
download(imgurls)