MCPcopy Create free account
hub / github.com/Le0nsec/SecCrawler / Get

Method Get

crawler/lab/AlphaLab.go:24–80  ·  view source on GitHub ↗

Get 获取 AlphaLab 前24小时内文章。

()

Source from the content-addressed store, hash-verified

22
23// Get 获取 AlphaLab 前24小时内文章。
24func (crawler AlphaLab) Get() ([][]string, error) {
25 client := utils.CrawlerClient()
26
27 req, err := http.NewRequest("GET", "http://blog.topsec.com.cn/feed/", nil)
28 if err != nil {
29 return nil, err
30 }
31
32 req.Header.Set("Cache-Control", "no-cache")
33 req.Header.Set("Upgrade-Insecure-Requests", "1")
34 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36")
35 req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")
36 req.Header.Set("Sec-Fetch-Site", "same-origin")
37 req.Header.Set("Sec-Fetch-Mode", "navigate")
38 req.Header.Set("Sec-Fetch-User", "?1")
39 req.Header.Set("Sec-Fetch-Dest", "document")
40 req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9")
41 resp, err := client.Do(req)
42 if err != nil {
43 return nil, err
44 }
45 defer resp.Body.Close()
46
47 fp := gofeed.NewParser()
48 feed, err := fp.Parse(resp.Body)
49 if err != nil {
50 return nil, err
51 }
52
53 var resultSlice [][]string
54 fmt.Printf("[*] [AlphaLab] crawler result:\n%s\n\n", utils.CurrentTime())
55
56 for _, item := range feed.Items {
57 t, err := time.Parse(time.RFC1123Z, item.Published)
58 if err != nil {
59 return nil, err
60 }
61
62 time_zone := time.FixedZone("CST", 8*3600)
63 if !utils.IsIn24Hours(t.In(time_zone)) {
64 break
65 }
66
67 fmt.Println(t.In(time_zone).Format("2006/01/02 15:04:05"))
68 fmt.Println(item.Title)
69 fmt.Printf("%s\n\n", item.Link)
70
71 var s []string
72 s = append(s, item.Link, item.Title)
73 resultSlice = append(resultSlice, s)
74 }
75
76 if len(resultSlice) == 0 {
77 return nil, errors.New("no records in the last 24 hours")
78 }
79 return resultSlice, nil
80}

Callers

nothing calls this directly

Calls 3

CrawlerClientFunction · 0.92
CurrentTimeFunction · 0.92
IsIn24HoursFunction · 0.92

Tested by

no test coverage detected