在开始写爬虫之前,我们先了解一下爬虫
首先,我们需要知道爬虫是什么,这里直接引用百度百科的定义
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
这些还不够,我们还需要知道爬虫爬取数据的基本步骤。
爬虫爬取数据一般分为三个步骤
完成上面三步一个简单的爬虫就写好了( ̄▽ ̄)",下面开始写壁纸爬虫
我们要爬取的目标网站是:http://www.netbian.com/,这个网站长这样:
picture-1
红色方框里的就是我们要爬取的图片。
在动手写代码之前,我们要先理一理思路,这样可以让思路更清晰,写代码时就会更流畅,代码也更简洁。
对于一个爬虫脚本,我们一般需要考虑以下几点:
以我们的项目为例:
分析完之后,就开始爬取了!
首先第一步,分析网页,在浏览器里打开网页,按下 F12进入开发者模式,选择 Elements选项卡,如图:
picture-2
使用元素选择器:
picture-3
找到标签后,我们就可以写出标签的 xpath路径,这个比较简单,就不详细写了。有疑问的可以评论留言。
图片标签的 xpath路径:
#图片地址
path = '//a[@title]/img/@src'
#为了方便给图片命名 顺便把图片名字也爬下来
name = '//a[@title]/img/@alt'
接下来就是应用我们所学的时候了,话不多说,直接上代码:
#-*- coding: utf-8 -*
import requests
from lxml import etree
#网站地址
url = 'http://www.netbian.com/'
#获取网页
r = requests.get(url)
r.encoding = r.apparent_encoding
#解析网页
dom = etree.HTML(r.text)
#获取图片 img标签
#先获取图片所在的 img标签在分别获取图片链接和名字
img_path = '//a[@title]/img'
imgs = dom.xpath(img_path)
#获取图片的链接和名字 并下载 命名 保存
for img in imgs:
#xpath 的相对路径 “.” 代表上一级标签
#不要忘记 xpath返回的总是列表!
src = img.xpath('./@src')[0]
name = img.xpath('./@alt')[0]
#下载图片
image = requests.get(src)
#命名并保存图片
with open(name+'.jpg', 'wb') as f:
f.write(image.content)
运行结果:
picture-4
这样我们就完成了一个简易版的壁纸爬虫,为什么说是简易版呢,理由如下:
有兴趣的朋友可以继续完善上面两个问题,可以把问题发在评论区,我会一一查看的。