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

搜索热词

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

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

importrequestsurllibjsonfrom fake_useragent UserAgentdefgetSougouImag(category,length,path):

n=length

cate=category

imgs_url= []   #定义空列表,用于保存图片url

m = 0   '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 injs:

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 += 1Download complete!)

getSougouImag(壁纸',500,rD:\souGouImg/')

效果图:

80d123cc027fbc1b6da7dc154698f06a.png

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

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

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

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

5c816c4de9f07a304c38d1b54c539b26.png

如此简单?那直接获取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= {设置UA

f = requests.get(url,1)">发送Get请求

print(f.status_code)    打印状态码

soup = BeautifulSoup(f.text,lxml')     用lxml解析器解析该网页的内容

print(soup.select(img'))   筛选出所有img的标签,并打印其属性和内容

代码执行结果如下:

d404fed6ef654016ee50e4bd182fb598.png

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

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

68fc4182974b34d53c6c28d59d18f4db.png

发现Preview下的内容为json格式的

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

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

总结

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值