作为一只小白刚开始学python,听到用python写爬虫就感觉十分的高端。当我看到知乎大佬们写爬虫用了各种库更懵逼了。
其实基础爬虫可以直接用python自带的库urllib,re(但确实用了requests后就不想用urllib)
写程序一定要心里有点B数,
>>>所以不妨先来想想我的爬虫是来干什么的
emmmm,小姐姐照片,我戳的美照。确立小目标后就准备开始了。
>>>爬虫到底是什么
还是很懵逼,我又要如何获取图片呢?
这时候我的html知识用上了:图片都是通过链接写到网站上的,通过链接就能找到这张图片
那么如何用链接找到图片呢:对服务器发送请求,它的response中就包含图片
所以我的任务具体化为: 要找到网站上图片链接,发送请求,然后保存到本地
>>>准备打开新世界的大门了
第一步:找到要爬的网页先发送一个小小的请求:
url=requests.get("url",headers={}) #最好加上头部,它还有其他作用(⊙?⊙)
第二步:分析网页
打开浏览器的开发者工具,就会可以在在Elements栏看见网页的html,然后在找到<img >标签下的链接,确认一下是不是所找的图片,如果是的话就拿小本本记下来,如果不是就继续找。
然后呢?
难道要一个个一个找吗?难道没有一劳永逸的办法吗?
这时候正则(re)模块j就要上场了,所以可以用网页请求返回的url.text中来找到我们想要的图片链接。
imglist=re.findall(“ ”,url.text)
#url_list是图片链接的列表,“ “中要手动添加图片链接的相同部分,这用时候前面的小本本筛选一下就可以了(相当于索引)
第三步:再次发送请求
我们得到图片链接的列表后要挨个挨个发送图片链接的请求,用for循环再好不过了
第四步:保存到本地
法1:和发送请求一起写
法2.:先发请求再写入
m=requests.get("url_list",headers={})
with open(‘ m‘,‘wb‘) as f # ‘wb‘指写入二进制编码
f.write(m.content) #m.content 指m的二进制编码
f.close() #最后关闭文件
第五步:检查本地相应文件夹查看是否含有相应文件
>>>然后组合一下(直接上图 ━┳━ ━┳━)
>>>心得体会:
写出来还是很有成就感的,但是很多时候都是格式的问题导致运行出错,所规范写法很重要啊
如:
保持地址在某个文件夹要这样写:‘c:\img ’
再比如: x=x+1; 最后的分号一定不能没有
还有的就是找资料一定要带脑子,不能看到有什么就硬生生搬运过来,理解原理是最重要的
最后一点,胶水语言的库真是千变万化