ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python爬虫:爬取必应壁纸(可直接运行)

2020-12-10 23:59:55  阅读:211  来源: 互联网

标签:Python html 爬取 headers imagename url 必应 page


1、Why is bing?

必应专门的壁纸网站,每天都会更新一张高质量,漂亮到不行的图片。非常适合用来当电脑的桌面壁纸,且可以适配不同的桌面尺寸,提升你的桌面逼格。
必应壁纸首页

2、code

2.1 所需要的第三方库

代码中涉及到的第三方库。

  • os
  • re
  • requests

2.2 代码

下载运行前需更改代码中储存下载图片的路径

下载即可运行!!

#爬取必应壁纸
import os
import re
import requests
 
def get_one_page(url): # 解析给定url的网页源代码
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}
    response = requests.get(url,headers = headers)
    if(response.status_code == 200): # 状态码200说明返回状态正确,状态码是404,403等其他代号则说明网页请求失败
        return response.text
    return None
 
def download(url,filename): # 下载图片到本地文件夹
    filepath = 'E:/vlog//  '+ filename + '.jpg' # 这里的路径可以更改自己的文件夹
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}
    if os.path.exists(filepath): #判断图片路径是否已经存在,如果存在就不保存了
        return
    with open(filepath,'wb')as f: # 把图片以二进制形式写入到本地
        response = requests.get(url,headers=headers)
        f.write(response.content)

def parse(html): # 解析网页源代码
    pattern  = re.compile('data-progressive="(.*?)".*?<h3>(.*?)</h3>') # 正则表达式筛选html
    items = re.findall(pattern,html)
    for item in items:
        try:
            url = item[0].replace('640','1920').replace('480','1080') # 替换图片尺寸
            #print(url)
            imagename = item[1].strip()
            rule = re.compile(r'[a-zA-z1-9()-/]')#[]用来表示一组字符【abc】匹配a,b,或c
            imagename = rule.sub('', imagename)
            download(url,imagename.strip())
            print(imagename,"正在下载")
        except Exception:
            continue
 
if __name__ == '__main__':
    for page in range(1,20): # 爬取页面的范围,可以随意更改
        url = 'https://bing.ioliu.cn/?p='+str(page)
        print("正在抓取第", page, "页" ,url)
        html = get_one_page(url)
        parse(html)
        

3、Result

运行过程

代码运行过程
运行结果

运行结果

一些说明

  1. 下载的有些图片显示不出来,可能是解析源代码的时候出现的小问题,但是概率很小,基本上爬取100张图片才会出现几张问题图片
  2. 如果需要爬取大量图片,需要设置休眠时间,防止被浏览器的反爬机制识别为爬虫从而爬取失败

标签:Python,html,爬取,headers,imagename,url,必应,page
来源: https://blog.csdn.net/weixin_44064553/article/details/111026409

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有