Python新手爬虫二:爬取搜狗图片(动态)

Python新手爬虫二:爬取搜狗图片(动态),第1张

概述经过上一期爬取豆瓣影评成功后,感觉爬虫还不错,于是想爬点图片来玩玩... 搜狗图片地址:https://pic.sogou.com/?from=category 先上最后成功的源码(在D盘下创建sou

 经过上一期爬取豆瓣影评成功后,感觉爬虫还不错,于是想爬点图片来玩玩...

搜狗图片地址:https://pic.sogou.com/?from=category

 

先上最后成功的源码(在D盘下创建souGouimg文件夹,直接直接代码即可获取):

import requests urllib Jsonfrom fake_useragent  UserAgentdef getSougouImag(category,length,path):    n = length    cate = category    imgs_url = []   #定义空列表,用于保存图片url    m = 0   用于显示图片数量    url = 'https://pic.sogou.com/pics/channel/getAllRecomPicByTag.Jsp?category='+cate+&tag=%E5%85%A8%E9%83%A8&start=0&len='+str(n)    headers = {user-agent':UserAgent().random}     设置UA    f = requests.get(url,headers=headers)      发送Get请求    print(f.status_code)    Js = Json.loads(f.text)    Js = Js[all_items']    for j in Js:        imgs_url.append(j[thumbUrl])    for img_url  imgs_url:        print(***** '+str(m)+.jpg *****'+ Downloading...)        urllib.request.urlretrIEve(img_url,path+str(m)+.jpg')    下载指定url到本地        m += 1    Download complete!)getSougouImag(壁纸',500,rD:\souGouimg/')

效果图:

 

下面开始介绍作为一个新手的爬虫步骤...

1、首先打开网页查看HTML源码

先按F12打开调试界面—>右击图片—>点击检查

会出现如下图红框中的信息,不难看出,此图片的url就是img标签中src属性的值。

 

如此简单?那直接获取src属性的值,再进行下载不就完全ok了?

话不多说,开干。

from bs4  BeautifulSoupimport UserAgent   ua库url https://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD&from=home#%E5%85%A8%E9%83%A8%269headers = {设置UAf = requests.get(url,1)">发送Get请求print(f.status_code)    打印状态码soup = BeautifulSoup(f.text,lxml')     用lxml解析器解析该网页的内容print(soup.select(img'))   筛选出所有img的标签,并打印其属性和内容

代码执行结果如下:

发现打印出的HTML并不是与网页中的一致,所有考虑,这根本不是图片的源url,于是推测图片是动态的,继续查找... 也是百度到了某个大佬的文章,才挖掘出以下搜寻方法。

 

2、点击NetWork—>点击XHR—>然后往下滚轮,使它加载出新的图片—>点击新加载出来的图片—>再点击右侧的PrevIEw

 发现PrevIEw下的内容为Json格式的

发现all_items,点击它发现有0.....众多数字,再点开发现有许多url,粘贴到浏览器中查看,发现这些都是图片的url(心中狂喜)

找到图片的真实URL,问题也就变得简单了。详情还是请看代码注释吧~

总结

以上是内存溢出为你收集整理的Python新手爬虫二:爬取搜狗图片(动态)全部内容,希望文章能够帮你解决Python新手爬虫二:爬取搜狗图片(动态)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1190075.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存