spiders2

package
v0.0.0-...-2e4edee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2022 License: LGPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

这是抓取爬虫的第二个版本

Index

Constants

View Source
const (
	INDEX_STATUS_NO      = iota // 没有索引
	INDEX_STATUS_OK             // 已经索引
	INDEX_STATUS_RESTORE        // 已经再保存,spider的数据已经交给后段
	INDEX_STATUS_UP             // 需要更新索引
	INDEX_STATUS_NONEED         // 不需要索引
)

索引状态

View Source
const (
	INTERCOM_OPERATE_NO       = iota // 没有
	INTERCOM_OPERATE_STOP            // 站点停止
	INTERCOM_OPERATE_RUN             // 站点运行
	INTERCOM_OPERATE_FINISHED        // 站点完成了一遍抓取
)

内部通讯状态

View Source
const (
	MEDIA_TYPE_OUTSIDE = iota // 站外链接(只要是连接到站外的,无论js、css、图片等,都被称为站外连接)
	MEDIA_TYPE_OTHER          // 没有表明的其他
	MEDIA_TYPE_IMG            // 图片文件
	MEDIA_TYPE_FILE           // 普通文件
	MEDIA_TYPE_TEXT           // txt
	MEDIA_TYPE_VIDEO          // video
	MEDIA_TYPE_AUDIO          // audio
)

挂接的媒体类型,也就是Role中Friends的int,注意这里是int而不是uint8

View Source
const (
	WORK_STATUS_NO          = iota // 未知工作状态
	WORK_STATUS_NO_CONFIG          // 没有配置文件
	WORK_STATUS_HAVE_CONFIG        // 有配置文件
	WORK_STATUS_WORKING            // 工作中
	WORK_STATUS_STOPED             // 已经停止
)

工作状态

Variables

View Source
var AcceptLanguage = []string{
	"en-US,en;q=0.5",
}
View Source
var UserAgent = []string{

	"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0",
	"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)",
	"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36",

	"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0",
	"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
}

Functions

func RegInterfaceForGob

func RegInterfaceForGob()

注册"encoding/gob"所用的类型,如果调用了NewSpider()方法,则不需要再使用这个方法

Types

type MediaData

type MediaData struct {
	roles.Role
	Url         string    // 页面的完整地址
	UpTime      time.Time // Update Time 最近更新时间
	UpInterval  int64     // 更新间隔,单位天
	Domain      string    // 域名
	Spider      string    // 爬虫机器身份标记,用以记录获取数据的机器是那一台
	MediaType   int       // 媒体类型
	MediaName   string    // 媒体的文件名
	DataSaved   bool      // 是否保存了数据体
	DataBody    []byte    // 媒体的数据体,根据扩展名可以还原当初文件,按照设置决定是否保存媒体的数据体
	Signature   string    // 内容签名,完整内容的SHA1散列值
	IndexStatus uint8     // 索引状态,默认是不需要索引INDEX_STATUS_NONEED
}

一个挂接的媒体数据信息

type PageData

type PageData struct {
	roles.Role
	Url         string    // 页面的完整地址,带http等协议
	UpTime      time.Time // Update Time 最近更新时间
	UpInterval  int64     // 更新间隔
	Domain      string    // 域名
	Spider      string    // 爬虫机器身份标记,用以记录获取数据的机器是那一台
	KeyWord     []string  // 关键词,来自于页面
	Signature   string    // 内容签名,内容的SHA1散列值,主体,去除HTML标签后的
	HeaderTitle string    // 页面的标题,来自<header><title>
	BodyContent string    // 页面内容信息,来自<body>体
	AllContent  string    // 完整的页面内容
	IndexStatus uint8     // 索引状态
}

一个页面的数据信息

type Site

type Site struct {
	roles.Role
	Domain []string // 来自SiteMachine
}

站点的数据信息,做一个站点所有页面和媒体角色的父角色

type Spider

type Spider struct {
	// contains filtered or unexported fields
}

抓取蜘蛛

func NewSpider

func NewSpider(name string, rc *drule.TRule, logs *ilogs.Logs) (spider *Spider)

新建一个Spider 执行了RegInterfaceForGob(),初始化工作状态,不接收配置文件,返回*Spider

func (*Spider) ReturnWorkStatus

func (s *Spider) ReturnWorkStatus() uint8

查看工作状态

func (*Spider) Start

func (s *Spider) Start() (err error)

运行蜘蛛,如果在运行就直接返回

func (*Spider) Stop

func (s *Spider) Stop() (err error)

停止蜘蛛,如果已经是停止状态就直接返回

func (*Spider) UpdateConfig

func (s *Spider) UpdateConfig(config *cpool.Block) (err error)

更新配置信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL