
经过上一期爬取豆瓣影评成功后,感觉爬虫还不错,于是想爬点图片来玩玩...
搜狗图片地址: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新手爬虫二:爬取搜狗图片(动态)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)