网页上的数据类型十分丰富:文本、图片、链接、源码等。在数据采集过程中,不同类型的数据类型,对应的抓取方式是不同的。本文将讲解常见的数据类型与其抓取方式。
示例网址:https://movie.douban.com/explore#!type=movie&tag=%E7%BB%8F%E5%85%B8&sort=recommend&page_limit=20&page_start=0
操作:鼠标选中页面中的文本,在弹出的操作提示框中选择【文本内容】,目标文本就被采集下来了。
操作:鼠标选中页面中的图片,在弹出的操作提示框中选择【图片链接】,图片网址就被提取下来了。
为什么是【IMG标签的src属性】?在 XPath教程 中,我们讲过网页Html相关知识,网页上的图片一般都是用IMG标签表示,其图片地址会放在IMG标签的src属性中。
所以,当我们要提取图片网址时,本质上是用XPath定位到Img标签,再从IMG标签中提取src属性,src属性的值,就是图片网址。
这里演示的只是抓取图片时使用的抓取方式,具体的图片采集,请看教程文件边采集边下载
操作:鼠标选中页面中的超链接(一般是放在标题文本、图片中,可点击跳转),在弹出的操作提示框中选择【链接地址】,超链接的网址就被提取下来了。
在 XPath教程 中,我们讲过网页Html相关知识,网页上的超链接一般都是用A标签表示,超链接会放在IMG标签的href属性中。
所以,当我们要提取超链接网址时,本质上是用XPath定位到A标签,再从A标签中提取href属性,href属性的值,就是超链接网址。如果选择采集链接之后,字段显示为空,一般是xpath定位的元素没有链接,需要在源码里确认一下。
抓取网页源码Outer Html
操作:鼠标选中页面中要抓取的元素,在弹出的操作提示框中选择【Outer Html】,该元素对应的源码(Outer Html)就被采集下来了。
操作:鼠标选中页面中要抓取的元素,在弹出的操作提示框中选择【Inner Html】,该元素对应的源码(Inner Html)就被采集下来了。
Outer Html 和 Inner Html有何区别?
Outer Html:包含当前元素(如图红色框)
Inner Html:不包含当前元素,从当前元素的下一级开始(如图橙色框)
先用XPath找到当前元素的源码,观察当前源码中存在什么属性值、需要提取哪个属性值,然后提取存在且需要的属性值即可。
示例网址:https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&page=7&s=177&click=0
操作步骤:
如图,是一个京东商品列表页。每一个商品,都有一个商品ID,现在需要采集这个商品ID。
第1个商品列表的定位XPath为https://www.bazhuayu.com/tutorial//*[@id='J_goodsList']/ul/li[1],对应的网页源码中,有class、data-sku、data-spu、data-pid四个属性。我们需要抓取data-sku这个属性的属性值。
我们先选中第一个商品列表,在弹出的操作提示框中,选择【文本内容】,这个步骤只是为了获得定位到列表的XPath。