不用写代码的爬虫----web scraper介绍

2019-09-28  本文已影响0人  南风寄羽

本文主要摘自官方文档

1.可以指定多个网址。如果是规律的。例如:

http://example.com/page/1

http://example.com/page/2

http://example.com/page/3

那我的网址就可以这么写    http://example.com/page/[1-3]

指定网址

如果他的网址页面不是以1递增的,比如pg/1    pg/11    pg/21        那么我们可以这样写   pg/[1-21:10]  可以认为前面的1是默认的,所以可以不写

2.如何爬取二级页面(详情页面)

设置完前面的网页,建立sitemap之后,我们建立一个link  selector(链接选择器)。然后再建立子选择器。一般是text(文本)。需要注意的是,我们需要在当前页面进入详情页。一句话解释:链接选择器就是告诉插件点击哪里,子选择器告诉插件我要找什么数据。另外,三种核心选择器是link  selector  ,element   selector,  text  selector.

3.当选择器建立完成之后,切换到sitemap  your_sitemap.可以看到下拉框有scrape按钮,点击即可开始爬取。这时,插件会自动打开你指定的网址,抓完数据后浏览器会关闭。这时会显示:no data  scraped  yet.  refresh.点击refresh,数据就出来了。如果这时还没有,可能要回去检查一下sitemap,哪里弄错了

4.选择器:选择器大致可以分为三种----数据抽取、链接选择器(link)、元素选择器

    数据抽取选择器只是简单的返回从选择的元素找到的数据。

    链接选择器从链接提取网址,稍后打开提取数据。举个例子,如果一个sitemap  tree有一个链接选择器,后面跟着三个子文本选择器。那么web  scraper就会打开链接选择器指定的网址,然后抽取3个文本选择器所指定的数据。当然,链接选择器后面也可以跟链接选择器,这样就实现了三级、四级等页面数据提取(级数越多会越慢)

    元素选择器包含多种数据元素。例如,元素选择器可以在电商网站上选择一系列项目。(对HTML熟悉的可以认为他是包含很多子标签的标签,如div).

    选择器选项(重要)parent selectors:确认当下建立的选择器的父选择器。 multiple:很重要的选项。举个例子,我现在想爬一下淘宝某个店铺所有产品的名字、价格、销量。那么我先建立一个父选择器,element  selector,此时我需要勾选mutiple.然后建立三个子文本选择器。注意这时千万不要勾选multiple.不然同一个产品的名字、价格、销量不在一行

4.1  文本选择器

    html标签会剥离,只有文本会返回。文本选择器会忽略<script>,<style>标签中的文本。

    正则:我们可以使用正则表达式对选择器获取的文本做进一步提取

    举几个例子:1)提取评论----评论有好几条,这时应该勾选multiple.2)提取多项目多文本。这个比较常用。需用元素选择器作为文本选择器的父选择器。3)一个项目多个不同文本。和1不同的是这里文本选择器是不同的。

4.2 链接选择器

    如果使用链接选择器而没有任何子选择器,那么就会提取链接和相应的网址。

    注意:web  scraper仅能在<a>标签href属性时工作。如果不生效执行下面的动作

    1)点击链接,看地址栏有无变化。如果没有可能用的是ajax加载数据。这时我们可以用element  click  selector

    2) 如果网站打开弹出式窗口那么就应该用link   popup  selector

    3)网站可能使用js  window.location来改变网址,这个目前无法处理

4.3  Sitemap.xml link selector(暂不清楚)

4.4  弹出链接选择器

    用法和链接选择器类似,当点击链接打开新的窗口而不是在同一个选项卡打开 或者在新选项卡打开,这时就要用到。

4.5  图像选择器

    图形选择器返回的是图像地址。之前有下载图形选项,现在我们可以用image download script

    先下载python,再https://github.com/webscraperio/image-downloader下载py文件,最后把包含图片链接的CSV文件放在py文件上面。

4.6  表格选择器

 4.7  元素属性选择器

    从html   元素中提取属性值,<a href="#" title="my title">link<a>.   比如提取my  title

4.8  html选择器

4.9  grouped  selector

    数据会存储成json格式。

4.10  元素选择器

    元素选择器包含多种数据元素,元素选择器可以在电商网站上选择一系列项目。

4.11  元素滚动选择器

    用于某些单页显示的网页,向下滑动加载数据。然而在淘宝测试效果不佳。

最后附上一段sitemap文件,json格式的。直接导入可用。

{"_id":"qiqixiong","startUrl":["https://ciciibear.tmall.com/category.htm?search=y&orderType=newOn_desc&pageNo=[1-20]#anchor"],"selectors":[{"id":"cloth2","type":"SelectorElement","parentSelectors":["_root"],"selector":"dl.item","multiple":true,"delay":0},{"id":"jump","type":"SelectorLink","parentSelectors":["cloth2"],"selector":"a.item-name","multiple":false,"delay":0},{"id":"title","type":"SelectorText","parentSelectors":["jump"],"selector":".tb-detail-hd h1","multiple":false,"regex":"","delay":0},{"id":"price","type":"SelectorText","parentSelectors":["jump"],"selector":".tm-promo-price span","multiple":false,"regex":"","delay":0},{"id":"sold","type":"SelectorText","parentSelectors":["jump"],"selector":".tm-ind-sellCount span.tm-count","multiple":false,"regex":"","delay":0}]}

上一篇下一篇

猜你喜欢

热点阅读