架构师

您现在的位置是:首页 > 程序人生 > 网络爬虫

网络爬虫

Java爬虫第10课:webmagic爬虫配置、启动和终止

架构师小跟班 2020-07-16 网络爬虫
爬虫的配置、启动和终止SpiderSpider是爬虫启动的入口。在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动。同时Spider的其他组件(Down

爬虫的配置、启动和终止

Spider

Spider是爬虫启动的入口。在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动。

同时Spider的其他组件(Downloader、Scheduler、Pipeline)都可以通过set方法来进行设置。

方法说明示例

create(PageProcessor)

创建Spider,示例:spider.create(new GithubRepoProcessor())

addUrl(String…)

添加初始的URL,示例:spider .addUrl("http://webmagic.io/docs/")

thread(n)

开启n个线程,示例:spider.thread(5)

run()

启动,会阻塞当前线程执行,示例:spider.run()

start()/runAsync()

异步启动,当前线程继续执行,示例:spider.start()

stop()

停止爬虫,示例:spider.stop()

addPipeline(Pipeline)

添加一个Pipeline,一个Spider可以有多个Pipeline,示例:spider .addPipeline(new ConsolePipeline())

setScheduler(Scheduler)

设置Scheduler,一个Spider只能有个一个Scheduler,示例:spider.setScheduler(new RedisScheduler())

setDownloader(Downloader)

设置Downloader,一个Spider只能有个一个Downloader,示例:spider .setDownloader(new SeleniumDownloader())

get(String)

同步调用,并直接取得结果,示例:ResultItems result = spider.get("http://webmagic.io/docs/")

getAll(String…)

同步调用,并直接取得一堆结果,示例:List<ResultItems> results = spider.getAll("http://webmagic.io/docs/", "http://webmagic.io/xxx")

爬虫配置Site

Site.me()可以对爬虫进行一些配置配置,包括编码、抓取间隔、超时时间、重试次数等。在这里我们先简单设置一下:重试次数为3次,抓取间隔为一秒。

private Site site = Site.me()
        .setCharset("UTF-8")//编码
        .setSleepTime(1)//抓取间隔时间
        .setTimeOut(1000*10)//超时时间
        .setRetrySleepTime(3000)//重试时间
        .setRetryTimes(3);//重试次数

站点本身的一些配置信息,例如编码、HTTP头、超时时间、重试策略等、代理等,都可以通过设置Site对象来进行配置。

方法说明示例

setCharset(String)

设置编码,示例:site.setCharset("utf-8")

setUserAgent(String)

设置UserAgent,示例:site.setUserAgent("Spider")

setTimeOut(int)

设置超时时间,单位是毫秒,示例:site.setTimeOut(3000)

setRetryTimes(int)

设置重试次数,示例:site.setRetryTimes(3)

setCycleRetryTimes(int)

设置循环重试次数,示例:site.setCycleRetryTimes(3)

addCookie(String,String)

添加一条cookie,示例:site.addCookie("dotcomt_user","code4craft")

setDomain(String)

设置域名,需设置域名后,addCookie才可生效,示例:site.setDomain("github.com")

addHeader(String,String)

添加一条addHeader,示例:site.addHeader("Referer","https://github.com")

setHttpProxy(HttpHost)

设置Http代理,示例:site.setHttpProxy(new HttpHost("127.0.0.1",8080))



文章评论