首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何勾引果冻去elasticsearch?

如何勾引果冻去elasticsearch?
EN

Stack Overflow用户
提问于 2020-05-07 02:01:45
回答 1查看 243关注 0票数 0

我在下面的代码中做了哪些修改,在弹性索引中使用游标符?

  1. 我想要全文(如果需要的话,我想得到完整的文本(带状html,剥离js,呈现)。
  2. 使其符合avro模式{pageurl:,标题:,内容:},
  3. 批量发布到特定的弹性搜索'mywebsiteindex-yyyymmdd‘-也许使用配置文件,而不是硬编码。

代码片段会很棒的。是否有示例go-colly代码显示爬行->scraping->产于弹性(例如python框架)的“管道化”输出。即流水线化的框架支持。

对于插入弹性,我正在考虑:https://github.com/olivere/elastic

代码语言:javascript
复制
func main() {
    c := colly.NewCollector(
        colly.AllowedDomains( "www.coursera.org"),
        colly.Async(true),
    )

    c.Limit(&colly.LimitRule{
        DomainGlob: "*",
         Parallelism: 2,
    })

    c.OnHTML("a[href]", func(e *colly.HTMLElement) {
        link := e.Attr("href")
        e.Request.Visit(link)
    })
    pageCount :=0
    c.OnRequest(func(r *colly.Request) {
        r.Ctx.Put("url", r.URL.String())
    })

    // Set error handler
    c.OnError(func(r *colly.Response, err error) {
        log.Println("Request URL:", r.Request.URL, "failed with response:", r, "\nError:", err)
    })

    // Print the response
    c.OnResponse(func(r *colly.Response) {
        pageCount++
        urlVisited := r.Ctx.Get("url")
        log.Println(fmt.Sprintf("%d  DONE Visiting : %s", pageCount, urlVisited))
    })

    baseUrl := "https://www.coursera.org"
    c.Visit(baseUrl)
 }
EN

回答 1

Stack Overflow用户

发布于 2020-05-07 06:13:51

您是正确的,您将需要一个额外的库来存储数据的弹性。只做工作中的一小部分。根据您的刮取策略,您需要编写代码来将刮取结果存储到索引中。

通常,您希望使用像橄榄石/弹性这样的库,连接到弹性库并初始化索引。然后,您可能希望有一个函数将结构化数据存储到该索引中,并在您想要存储的所有数据(从提供的代码片段中不太清楚)时,通过适当的go-colly回调(例如c.OnHTML())调用该函数。要阅读关于如何使用olivere/弹性的更多信息(请注意,version 7已经中断了API更改,因此一些旧版本的教程可能无法使用),请参阅戈多

根据您的特定用例,有许多决定要做(例如,决定如何在索引中构造数据,什么时候应该将数据发送给弹性数据-这意味着要使用什么颜色的回调,如何刷新索引中已经存在的页面,等等)。

至于框架,我不知道有什么东西会有末端管道,从刮到储存在弹性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61648591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档