#go
#Вперед
Вопрос:
Я пытаюсь запрограммировать первую программу Google go. Я получил эту рабочую часть:
package main
import (
"fmt"
"os"
"regexp"
"github.com/PuerkitoBio/goquery"
"github.com/gocolly/colly"
)
func TrimSpaceNewlineInString(s string) string {
re := regexp.MustCompile(` n t `)
return re.ReplaceAllString(s, "")
}
func main() {
args := os.Args[1:]
c := colly.NewCollector()
c.OnHTML("tr",
func(e *colly.HTMLElement) {
ch := e.DOM.Children()
spalte1 := ch.Eq(0)
spalte2 := ch.Eq(1)
spalte1.Each(
func(_ int, s *goquery.Selection) {
fmt.Print(TrimSpaceNewlineInString(s.Text()), ":", TrimSpaceNewlineInString(spalte2.Text()))
})
})
c.Visit("https://deweysearchde.pansoft.de/webdeweysearch/executeSearch.html"
"?lastScheduleRecord=669.1-669.7amp;lastTableRecord=amp;query=" args[0] "amp;_showShortNotations=offamp;catalogs=DNBamp;_catalogs=offamp;catalogs=GBVamp;_catalogs=offamp;catalogs=HeBISamp;_catalogs=offamp;catalogs=SUBamp;_catalogs=offamp;catalogs=SWBamp;_catalogs=offamp;catalogs=FUBamp;_catalogs=off")
}
Но я хочу получить только 2-й столбец, если он находится в виде диапазона [0-9.-], и если это так, то мне понадобится следующий 3-й столбец с классификацией DDC этого DOM HTMLElement talbe.
Я хотел бы получить следующее
600;Technik
660;Chemische Verfahrenstechnik
669;Metallurgie
669.1-669.7;Metallurgie einzelner Metalle und deren Legierungen
669.1;Eisenmetalle
Кто-нибудь здесь может мне помочь и рассказать, как это можно сделать с помощью colly Colly doc для go, который похож на jQuery?
PS: Я пробовал этот способ — с дочерними элементами. Но результат выглядит примерно так. Я не знаю почему.
Notation:Thema :
Haupttafeln
600:
Technik
660:
Chemische Verfahrenstechnik
661:
Industriechemikalien
661.2-661.6:
Säuren, Basen, Salze
661.5:
Ammoniumsalze
Notation:Thema :HilfstafelnT1--0:Hilfstafel 1. StandardschlüsselT2--0:Hilfstafel 2. Geo ...
Комментарии:
1. при чтении вашего вопроса мне пришло в голову другое: используемый вами источник данных находится под лицензией CC с ограничением без производных, которое видно в нижнем колонтитуле страницы. Вам следует спросить владельца содержимого данных, можете ли вы использовать данные, если ваш производный является общедоступным.
2. @Lars спасибо, но мне это нужно только для внутреннего использования — мой производный не должен использоваться публично