php 抓取网页源码( 谷歌浏览器存储必应背景图片 )
优采云 发布时间: 2022-03-15 11:12php 抓取网页源码(
谷歌浏览器存储必应背景图片
)
python爬虫抓取必应背景图片
语言:python 3.0
以前每天都在火狐浏览器上查看背景图来存储必应背景图,或者在谷歌浏览器上查看元素,总觉得太麻烦,所以还是想到了用python写个脚本来爬取,废话不多说。 ,进入主题
----------------------------------- ---------- ------我是分界线----------------------------- --------- ----------------------------
首先看源码,需要先找到背景图片的直接链接地址。好在图片的直接链接放在了源码开头最显眼的地方
href的内容就是我们需要的直接链接,点击就是我们想要的图片
所以主要目的是获取这个链接。自然,稍微有点前端知识的人都知道(当然我只知道一点二),我们要获取这个对象,可以通过它唯一的Id值来获取),而ID号不会改变,即“bgLink”。
这个问题解决了,直接在python中取对应的工具就好了。
----------------------------------- ---------- ------我是分界线----------------------------- --------- ----------------------------
----------------------------------- ---------- ------我是第二条分界线---------------------------- ---------- -----------------
我们使用了requests和BeautifulSoup两个包(一般python不自带,需要自己安装)
第一步,先获取着陆页代码
1 url='https://cn.bing.com/';
2
3 demo=getHTMLText(url)``
4
5
这里的getHTMLText是向网页发出请求,对应后返回网页的HTML代码,具体代码如下:
1def getHTMLText(url):
2 '''
3 此函数用于获取网页的html文档
4 '''
5 try:
6 #获取服务器的响应内容,并设置最大请求时间为6秒
7 res = requests.get(url, timeout = 6)
8 #判断返回状态码是否为200
9 res.raise_for_status()
10 #设置该html文档可能的编码
11 res.encoding = res.apparent_encoding
12 #返回网页HTML代码
13 return res.text
14 except:
15 return'产生异常'
16
17
第二步,解析获取到的代码,定位到Id为“bgLink”的对象,获取其href属性的值,得到直链
1soup=BeautifulSoup(demo,'html.parser')
2pic=url+soup.find(id='bgLink').get('href')
3
4
第三步,获取要重命名的图片名称
图片的名字在Id“sh_cp”中,观察源码得到,name属性为“title”
那你还需要把名字中的'/'替换掉,否则本地存储的时候会报错
1name=soup.find(id='sh_cp').get('title')
2name=name.replace('/','_',5)
3
4
第四步,将图片保存到本地
1name='D:/bingpicture/'+name+'.jpg'
2 r=requests.get(pic)
3 with open(name,'wb')as f:
4 f.write(r.content)
5
6
大功告成,我们只需要运行脚本直接下载图片到本地
----------------------------------- ---------- ------我是第二条分界线---------------------------- ---------- -----------------
完整代码附在文末,请多多指教! ^ v ^
1import requests
2from bs4 import BeautifulSoup
3
4
5
6def getHTMLText(url):
7 '''
8 此函数用于获取网页的html文档
9 '''
10 try:
11 #获取服务器的响应内容,并设置最大请求时间为6秒
12 res = requests.get(url, timeout = 6)
13 #判断返回状态码是否为200
14 res.raise_for_status()
15 #设置该html文档可能的编码
16 res.encoding = res.apparent_encoding
17 #返回网页HTML代码
18 return res.text
19 except:
20 return'产生异常'
21
22def main():
23 '''
24 主函数
25 '''
26 print("执行中....")
27 #目标网页
28 url='https://cn.bing.com/';
29
30 demo=getHTMLText(url)
31
32 #解析HTML代码
33 soup=BeautifulSoup(demo,'html.parser')
34 #得到图片网址
35 pic=url+soup.find(id='bgLink').get('href')
36 #获得图片名字
37 name=soup.find(id='sh_cp').get('title')
38 #将名字中的/替换
39 name=name.replace('/','_',5)
40 #储存在D:/bingpicture/下
41 name='D:/bingpicture/'+name+'.jpg'
42 r=requests.get(pic)
43 with open(name,'wb')as f:
44 f.write(r.content)
45
46main()
47
48
49