lyj0886 发表于 2020-3-9 19:04

[爬虫]今天又没学到什么之Python爬取bing壁纸

先说下学习中获得的帮助:

突然想学怎么爬图片,于是去找找了网上的一些代码案例,下面就是让我醍醐灌顶(学到东西)的博客,感谢大哥!
https://github.com/Dootmaan/BingWallpaper

在学习的过程中,不是很理解lxml的作用,找到了一篇学习lxml很不错的博客https://www.cnblogs.com/gaochsh/p/6757475.html
也感谢这位大哥!

接下来是讲一讲思路
思路:
1.利用requests库给网站(也就是想爬的那个网站)发送请求

2.利用lxml提取想要的数据

3.利用open()和write()函数下载保存图片

接下来看看代码
代码:

import requestsfrom lxml import etree

def bspider(html):
ht = etree.HTML(html)
# html_data = ht.xpath('/html/head/link[@id = "bglink"]/@href')#在这里爬不到href
html_data2 = ht.xpath('//div[@id = "bgImgProgLoad"]/@data-ultra-definition-src')#定位到所要数据的位置并爬取
# print(html_data2)

a = "https://cn.bing.com/"+html_data2#图片的网址
try:
picture = requests.get(a)
except requests.exceptions.ConnectionError:
print("wrong")

fq = open('D:\\tupian\\'+"1"+'.jpg','wb')#创建一个叫1.jpg的文件
fq.write(picture.content)#将图片数据写入1.jpg也就是下载我们要的图片
print("success")


if __name__ == '__main__':
result = requests.get('https://cn.bing.com/')#bing的网址
bspider(result.text)





对一些注释的解释:

1. #创建一个叫1.jpg的文件
#将图片数据写入1.jpg也就是下载我们要的图片 :
我理解的程序爬取图片的方式是,在网上获取到图片的数据(1010…也就是二进制数据),然后我们在本地创建一个文件本身什么东西都没有,这时我们再将图片的二进制数据写进文件当中,文件就成为我们想要的图片。

按照我自己理解的方式,感觉能明白爬虫的原理,但又觉得说出来怪怪的。若有不正之处,欢迎指教。

最后
总结:
1.更加熟悉了requests库的用法
2.学会怎么使用lxml库(如etree.HTML(),xpath())

3.终于明白了是用write()函数将图片保存下载下来的(以前看其他博客都不知道是那段代码起的作用,小声说.jpg)


ps:由于我的一些图片太大上传不到吾爱,有些东西没写出来(哭了)
感兴趣的朋友可以看看我在csdn的博客:
https://blog.csdn.net/weixin_43728206/article/details/104758410


lyj0886 发表于 2020-3-9 23:05

zoomyou 发表于 2020-3-9 20:12
谢谢分享,请问您是从哪里开始学习的,是自学书本视频,还是报了培训机构,谢谢回复!!!

自学,从别人的博客一点点学会的

落云卿 发表于 2020-3-9 19:53

谢谢分享

cyantea 发表于 2020-3-9 20:00

贴源代码的格式要标准吧!

longsui48 发表于 2020-3-9 20:01

多看看论坛里的爬虫大佬写的 会有很多帮助的

haoyao2000 发表于 2020-3-9 20:05

看起来还不错

zoomyou 发表于 2020-3-9 20:12

谢谢分享,请问您是从哪里开始学习的,是自学书本视频,还是报了培训机构,谢谢回复!!!

Flytom 发表于 2020-3-9 20:21

谢谢分享,排版还得注意一下

Flytom 发表于 2020-3-9 20:22

fq使用完后要close一下

lyj0886 发表于 2020-3-9 23:04

cyantea 发表于 2020-3-9 20:00
贴源代码的格式要标准吧!

第一次贴,下次注意

lyj0886 发表于 2020-3-9 23:05

Flytom 发表于 2020-3-9 20:22
fq使用完后要close一下

太粗心了,下次注意。谢谢啦!
页: [1] 2
查看完整版本: [爬虫]今天又没学到什么之Python爬取bing壁纸