吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1924|回复: 10
收起左侧

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

[复制链接]
lyj0886 发表于 2020-3-9 19:04
先说下学习中获得的帮助:

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

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

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

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

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

接下来看看代码
代码:

[Python] 纯文本查看 复制代码
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[0])

a = "https://cn.bing.com/"+html_data2[0]#图片的网址
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一下

太粗心了,下次注意。谢谢啦!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 22:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表