python爬虫实例:通过requests库+xpath来实现爬取某图片网站步骤讲解
温馨提示:这篇文章已超过1013天没有更新,请注意相关的内容是否还可用!
想批量下载某图片素材网站url下图片最快速的方法通过python爬虫来实现了,下面通过一个实例来讲解使用python中的requests库和xpath来爬取的步骤。
我们知道,python爬虫向服务器发送请求时用得比较多的是urllib及requests库,urllib相对来说已经过时了,要做请求定制,而requests不需要,代码也实现更简单。
需要用到的库:requests、xpath、OS
以下是具体步骤:
1,分析接口数据,通过chrome或者一些抓包工具来查看。如下图,我们看到是get的方式。
2,分析各url的规律,第一页url=https://pic.netbian.com/4kmeishi/index.html
其它页,url=https://pic.netbian.com/4kmeishi/index_page(page是页码).html
这里要引入一个流程判断,如果page是1,url是一个固定的,而否则,就是另一个。
if(page == 1):
url = 'https://pic.netbian.com/4kmeishi/index.html'
else:
url= 'https://pic.netbian.com/4kmeishi/index_' + str(page) + '.html'
3,向服务器发送请求并获取数据,这里要注意使用UA来伪装,因为有一个反爬机制。
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
}
page_content = requests.get(url=url,headers=headers).text
4,下载数据并保存到相应的文件夹。(注意要编码图片名称,否则会乱码)
tree = etree.HTML(page_content)
li_list = tree.xpath('//div[@class="slist"]//li')
if not os.path.exists('./4k'):
os.mkdir('./4k')
for li in li_list:
img_name = li.xpath('./a/img/@alt')[0] + '.jpg'
img_src = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]
name = img_name.encode('iso-8859-1').decode('gbk')
img_data = requests.get(url=img_src).content
img_path = '4k/' + name
with open(img_path,'wb') as fb:
fb.write(img_data)
最后实现效果如下。
输入你要下载的页码就可以自动下载到相应的文件夹。
源码获取请在后台回复关键字"4K"就可以下载!
九七分享吧所有文章来源于网络收集整理,如有侵权请联系QQ2387153712删除,如果这篇文章对你有帮助或者还不错的请给小编点个小赞(◠‿◠),小编每天整理文章不容易(ಥ_ಥ)!!!
还没有评论,来说两句吧...