近段时间,闲着无聊去研究了下爬虫。简单的从虎牙直播中爬
取了很多美女的照片下来本地保存。先上效果图。
用的python语言,所以写的代码行数不多且精简。python+pycharm工具,用的是requests库以及lxlm中的etree库。在写代码之前,首先要做的是配置好环境以及装好库。总所周知,爬虫的步骤无非是这四步。
- 获取网页源码。
- 解析源码。转为html格式。
- 截取图片的代码。
- 请求图片的代码,并保存到本地
不过,这里边需要注意的几个点。一个是,防出发反爬机制,我们需要构建一个表头来模拟浏览器的访问。第二个是,可能有一些照片的源码构建不一样,我们需要用try去异常排除,以防出现错误无法运行,下面代码中会有解释,直接上代码。
import requests
from lxml import etree
#模仿浏览器访问,防止反爬
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
}
response = requests.get('https://www.huya.com/g/xingxiu',headers = headers)
#print(response.text)
#解析源码
data = etree.HTML(response.text)
#xpath获取一组标片的标签
girls = data.xpath('//img[@class="pic"]') #一组照片的标签
print(girls)
#遍历整个照片
for girl in girls:
img_url = girl.xpath('./@data-original')[0]
#print(img_url)
img= img_url.split('?')[0] #原图
name = girl.xpath('./@alt')[0]
try:
#切割完成照片一个个请求
image = requests.get(url = img)
#保存照片在文件夹
with open('D:/huya/%s.jpg' % name, "wb") as jpg :
jpg.write(image.content)
print(" 《%s》 下载完毕" % name)
except:
None
这是很简洁的几十行代码就可以把美女图片爬取下来了,而且可以看控制面板查看名称和下载进度,简直是一举两得啊。下面是控制面板展示:
到此,整个流程以及走完。下次再更新爬取其他有趣网站。