搜索热词
经过上一期爬取豆瓣影评成功后,感觉爬虫还不错,于是想爬点图片来玩玩...
先上最后成功的源码(在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/')
效果图:
下面开始介绍作为一个新手的爬虫步骤...
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= {设置UA
f = 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,问题也就变得简单了。详情还是请看代码注释吧~
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。