php 抓取网页源码( 谷歌浏览器存储必应背景图片 )

优采云 发布时间: 2022-03-15 11:12

  php 抓取网页源码(

谷歌浏览器存储必应背景图片

)

  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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线