前几天被公司临时安排了一个爬取百度图片的人物。我一开始以为很简单。后来发现只要分辨率大于500*438左右就是缩略图。导致了我经历了很多的坑。下面带你们感受下从坑到填满坑。
百度图片 百度图片
因为我要按照分辨来进行爬取,所以先自定义好分辨率
先给大家排个坑,这个页面是什么看不到什么数据的,所以要去其他页面。点击图片进入下一个页面!
第一个坑~
因为当时我想方便一点。就想直接用这个下载的url,因为python的requests可以直接用下载的链接 也可以直接下载下来。
但是!!
这个页面是js加载的,requests这个页面没办法出来这个下载的按钮的数据参数。当然可以使用selenium 自动化是可以做到的。但是对于大量爬虫不现实。 这个方法pass掉
第二个坑
会点爬虫的都会找到这个页面的json数据
写爬虫访问这个页面有2个方法,1.可以用url拼接(format参数)
page_url = url.format(urllib.parse.quote(word), num * page_num,width,height) #这样拼接参数
2.或者使用 response = (detail_url, params=params)
params = {"word": word,"di": item['di'],"tn": "baiduimagedetail","cs": item['cs'],"os": item['os'],}detail_url = ""response = (detail_url, params=params)
使用什么看自己个人喜爱。当然我建议第二种。
参数就在下面的
这里面有几个参数要改一下。
{pn=0 这是图片的起始数}
{rn= 30 这是百度json数据每次最多可以出30条}
{word = ‘’ 搜索的关键词}
接下来就是找原图了
第三坑
本文发布于:2024-02-05 09:18:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170728590565236.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |