50行Pyhton代码实现壁纸自动抓取

50行Pyhton代码实现壁纸自动抓取_第1张图片 程序运行效果

注:由于是体育网站的缘故,抓取到的图片中篮球类型的可能会相对较多

本程序爬取虎扑论坛的壁纸专区的帖子,自动抓取帖子中的图片并保存在本地。下面放上代码


# -*- coding: utf-8 -*-
"""
Created on Sat Jan 27 23:40:25 2018

@author: lyf
"""
# -*- coding:utf-8 -*- 
import requests
from bs4 import BeautifulSoup
import re
import xlrd
import os
import time

if __name__=='__main__':
    picneeded = int(input("请输入需要抓取的壁纸数"))
    mainurl = 'https://bbs.hupu.com/wallpaper' #虎扑壁纸区的主页
    mainpage = requests.get(mainurl)
    maintext = mainpage.text
    allurl = re.findall('',maintext)#利用正则表达式匹配每个帖子的链接
    for post_url in allurl:
        post_url='https://bbs.hupu.com'+post_url
        #print("图片链接:"+post_url)
        headers={'User-agent':'Mozilla/5.0'}
        try:
            page=requests.get(post_url,headers=headers,timeout=15)
        except:
            continue
        content=page.text
        pics_urls=re.findall('data-original="(.*?)webp',content) #得到每个图片的链接,需将webp改为jpg格式
        num=0
        root ="D://pics//" #存储图片文件的位置
        for pic_url in pics_urls:
            if picneeded == 0:
                break
            url=pic_url+'jpeg'
            num=num+1
            path =root+str(num)+'.jpeg'
            try:
                    if not os.path.exists(root):
                        os.mkdir(root)
                    if not os.path.exists(path):
                        r=requests.get(url)
                        with open(path,'wb') as f:
                            f.write(r.content)
                            f.close()
                        print("图片存储位置:" + path)
                        picneeded = picneeded-1
            except: 
                print("爬取失败")
        if picneeded == 0:
            break

如果你有Pyhton的运行环境,根据提示安装相应的库后,直接运行即可。

运行后输入想要抓取的壁纸数量,壁纸便会存储在D盘的pics文件夹内。


欢迎访问个人网站:www.leeyangfan.com

你可能感兴趣的:(Python)