发表于2017年0月16日15:18最后回复于2017年0月16日15:18

分享一下自己使用前嗅爬虫建表单的心得

2777浏览量

0评论

    使用前嗅爬虫软件也有一段时间了,开始的时候通过看视频和图文教程自学了爬虫的使用,从最开始的小白到现在能够熟练使用爬虫我走了许多弯路,也有一些心得体会。

    对于爬虫新手来说我,仅仅通过视频和图文教程想要掌握爬虫软件的使用还是有一些困难的,所以我希望能够分享一些我使用爬虫过程中的一些心得,今天要和大家分享的就是关于表单的一些个人理解,大家有意见或建议欢迎交流,有问题也可以在下边回帖问我哦,我会尽我所能给大家回复的。

    首先我们需要简单了解一下表单的概念。数据采集之后需要存入数据库,在ForeSpider中创建的表单,就是数据采集入库的表结构。表结构类似于数据表的模板,不同的频道可以使用同一个表单,创建任意多个数据表。我们可以认为表单就是数据表的模板。表单与数据表的区别是,表单是ForeSpider定义的,数据表是数据库定义的,两者的结构相同,通过数据菜单的“选择数据表”功能,可以为表单创建一个数据表。一个表单可以创建几个名称不同的数据表,但是他们的结构(字段名称和属性)都是和该表单一模一样的。

    前面建立表单在教程上都是很详细的,我在这里就不多说了,今天重点说一下字段的相关内容。准确的字段定义能够减少记录占据的空间,少量数据可能还没有什么感觉,但是在大量数据的前提下,不正确的字段定义会导致严重的后果,所以我们还是需要了解一下字段相关的知识。首先是字段名称,字段取名有几个注意点:

    第一是不能用SQL语句中的关键字,这里有的伙伴可能会说我也不太了解哪些单词会是关键字,没关系,软件中是能够提示我们的,例如我们使用name作为字段名称,在点击确定时会弹出错误窗口提示我们字段名称不合法,所以这一点多注意就好了。

    第二是尽量保证字段名能够反映字段内容,例如某个字段需要取新闻内容,我们使用content作为字段名称就能够反映出该字段的含义,这样明显比随便起一个诸如abc的字段名是要更好的。这里有的小伙伴可能会说我英语不好呢,不会用英文单词作为名称,没关系,使用拼音neirong也是可以的,只要保证这个原则就好了。

    第三是注意对较长的英文单词可以进行缩写,例如密码英文单词为password是比较长的,我们可以使用pwd或pw缩写代替,只要能够明白它是什么意思就好。

    第四是注意$和_的使用,比如一个字段叫姓名,使用name能够反映字段内容但是呢又是不合法的字段,这时候就可以使用$name或者_$name作为字段名,对于由两个单词组成的字段名使用_是比较规范的选择,例如利润率这个的英文是由profit ratio两个单词构成的,我们把两个单词写到一起又不容易辨认,这时候就可以使用_连接两个单词profit_ratio,这样是不是问题就解决了呢。

    第五是注意养成写字段描述的习惯,也许有人可能说我自己能看懂这些字段的含义,但是如果给别人看或者隔了很长时间再回头看是不是可能就忘记了呢,所以呢写上字段描述还是很有必要的。

    还有一个是我个人的一些习惯,例如对于一张表单中的字段我会尽量使用同样的格式去命名,像字段名称中英文都有的情况是我不能接受的,字段以$开头那么所有字段都要以$开头,这样想想强迫症是不是有时候也有一些好处呢!

    关于命名的注意点我就想到这些,还有一个重点是取值类型的介绍。我们可以看到取值类型的种类是特别多的,常用的有网页内全部文本、网页主键、选取内全部文本、网页获取时间等,这里我个人理解是除了脚本取值和(空)之外,其他取值类型都是字面上的意思,关于这些取值的概念,大家可以查看帮助文档,里边都有详细的概念介绍,这里就不再啰嗦了。爬虫采集有模板采集和脚本采集之分,简单的网站是可以通过配置模板来采集,复杂一些的网站是需要写脚本来采集。

    需要注意的一点是如果选择使用脚本采集那么之前选择的字段类型是不会生效的。例如某个字段字段类型是网页主键,但是是使用脚本进行取值,那么字段最终的值就是脚本的返回值,如果脚本没有返回值那么这个字段的值就是空的,因为字段类型选择网页主键已经因为脚本而失效了。

    变量类型有整型Interger,长整型Long,浮点型Float,字符串String,流Stream五种类型。

    Integer类型取值范围为-2147483648~2147483647,数值在这个范围内的使用Integer类型,Integer有一个扩展类型时间,通常用来返回指定格式的时间,扩展子类型选择日期和时间返回的是完整的时间,选择日期时返回年月日,时间则是返回时分秒。

    Long型取值范围是-9223372036854775808~9223372036854775807,通常是网页主键字段的取值类型,当取值范围超出整型的大小时使用Long型。

    Float型用来存放取值为小数的值。

    String类型是最常用的类型,字段值可以是文字、数字或字母,需要指定字符串长度。指定长度的原则就是在保证字段完整的前提下尽可能减少字段长度。例如字段内容是选取企业名称,我们要对企业的长度要有一个大体的认识,企业名称通常不会超过50个字,那么一个汉字是3个字节,50个汉字是150个字节,再加上适当的预留长度,这样我们就可以指定字符串长度为160,通常这个长度就足够存储企业名称了。如果太小那么可能会出现字段信息不完整的情况,太大的话会造成不必要的空间浪费同时也降低了效率。关于这个字段长度的指定大家仍需要多加练习。对于变长字段,顾名思义就是字段长度是可以改变的。当字段内容长度变化幅度过大时,可以选择变长字段,例如新闻内容,有的只是一段话,有的则是上千字的文章,这种情况下即使我们能够指定字符串的最大长度也会导致大量的空间浪费,这时候选择变长字段无疑是最好的选择。

    Stream类型是用来采集一些图片、视频、音频等。这里我的理解是图片、视频及音频都属于文件,指定为Stream能够将采集的数据转换为对应的文件格式即Stream类型下的扩展类型,这里需要注意的是网页中文件是属于哪种类型那么我们就需要选择哪种扩展类型,例如要爬取图片,那么扩展主类型就应该选择图片,当然如果能够确定图片的类型的话,扩展子类型也是可以选择的。

    最后就是关于字段属性的说明。主键字段是唯一的,想要作为主键的字段上必须勾选这一项。键值唯一则是限制了字段的取值,勾选这一项能够保证每条数据中该字段的字段内容都不重复,能够起到排重的效果。索引字段是对字段建立索引,在数据库中索引字段是可以使用SQL语句查询的,当然对一个字段建立索引也会降低数据库的效率,所以大家建立索引时还是要慎重考虑。其他的字段属性我也没有具体用过,一般来说能够了解以上几种属性就可以应对大部分情况啦!

    以上是我关于表单的一些心得体会,大家如果有疑问欢迎回帖哦,谢谢大家!

私信

举报