2025年6月4日 星期三 乙巳(蛇)年 三月初八 夜 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python爬虫抓取必应背景图片

时间:08-30来源:作者:点击数:62

python爬虫抓取必应背景图片

语言:python 3.0

之前每天都在火狐浏览器上查看背景图片存储必应背景图片,或者在谷歌浏览器上查看元素,这样总是觉得太麻烦,所以还是想着用python写一个脚本进行爬虫,废话少说,进入正题

-----------------------------------------------------我是分割线-------------------------------------------------------------------

首先查看源码,需要先找到背景图片的直链地址,很幸运的是图片的直链被放在了源码开始最为显眼对的地方

在这里插入图片描述

其中href的内容便是我们所需要的直链,点开便是我们想要的图片

在这里插入图片描述

所以最主要的目的是获得这个链接,自然,有点前端知识的都知道(当然我也只是略知一二),我们要获取这个对象,可以通过其独一无二的Id值来获取,而Id号是不会变化的,那便是 “bgLink”。

这个问题解决了,直接在python中采取相应的工具就好了。

-----------------------------------------------------我是分割线-------------------------------------------------------------------

-----------------------------------------------------我是分割线二号-------------------------------------------------------------------

我们采用requestsBeautifulSoup两个包(一般python不自带,需要自行安装)

第一步,先获取目标网页代码

  • url='https://cn.bing.com/';
  • demo=getHTMLText(url)``

这里的getHTMLText是对网页发出请求,并且在相应之后返回网页HTML代码的,具体代码如下:

  • def getHTMLText(url):
  • '''
  • 此函数用于获取网页的html文档
  • '''
  • try:
  • #获取服务器的响应内容,并设置最大请求时间为6秒
  • res = requests.get(url, timeout = 6)
  • #判断返回状态码是否为200
  • res.raise_for_status()
  • #设置该html文档可能的编码
  • res.encoding = res.apparent_encoding
  • #返回网页HTML代码
  • return res.text
  • except:
  • return'产生异常'

第二步,解析获取的代码,定位Id为“bgLink”的对象,并且获取其href属性的值,取得直链

  • soup=BeautifulSoup(demo,'html.parser')
  • pic=url+soup.find(id='bgLink').get('href')

第三步,获取图片名字,以便重命名

图片名字在Id为“sh_cp”中,这是通过观察源码得到的,姓名属性为"title"

然后还需要把名字中的’/'替换,不然后面存储在本地的时候会出错

  • name=soup.find(id='sh_cp').get('title')
  • name=name.replace('/','_',5)

第四步,将图片储存在本地

  • name='D:/bingpicture/'+name+'.jpg'
  • r=requests.get(pic)
  • with open(name,'wb')as f:
  • f.write(r.content)

大功告成,我们只需要运行脚本就能够直接下载好图片到本地啦

-----------------------------------------------------我是分割线二号-------------------------------------------------------------------

最后附上完整代码,请大家多多指教! ^ v ^

  • import requests
  • from bs4 import BeautifulSoup
  • def getHTMLText(url):
  • '''
  • 此函数用于获取网页的html文档
  • '''
  • try:
  • #获取服务器的响应内容,并设置最大请求时间为6秒
  • res = requests.get(url, timeout = 6)
  • #判断返回状态码是否为200
  • res.raise_for_status()
  • #设置该html文档可能的编码
  • res.encoding = res.apparent_encoding
  • #返回网页HTML代码
  • return res.text
  • except:
  • return'产生异常'
  • def main():
  • '''
  • 主函数
  • '''
  • print("执行中....")
  • #目标网页
  • url='https://cn.bing.com/';
  • demo=getHTMLText(url)
  • #解析HTML代码
  • soup=BeautifulSoup(demo,'html.parser')
  • #得到图片网址
  • pic=url+soup.find(id='bgLink').get('href')
  • #获得图片名字
  • name=soup.find(id='sh_cp').get('title')
  • #将名字中的/替换
  • name=name.replace('/','_',5)
  • #储存在D:/bingpicture/下
  • name='D:/bingpicture/'+name+'.jpg'
  • r=requests.get(pic)
  • with open(name,'wb')as f:
  • f.write(r.content)
  • main()
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门