当前位置: 首页> 娱乐> 八卦 > 免费推广的平台_免费申请网站官网_网络营销策划方案范文_google推广seo

免费推广的平台_免费申请网站官网_网络营销策划方案范文_google推广seo

时间:2025/7/14 18:17:09来源:https://blog.csdn.net/u013055678/article/details/144536637 浏览次数:0次
免费推广的平台_免费申请网站官网_网络营销策划方案范文_google推广seo

第一步:钉钉新建一个群机器人
钉钉创建群机器人文档:https://open.dingtalk.com/document/orgapp/custom-robot-access
安全设置选择签名
签名设置文档:https://open.dingtalk.com/document/robots/customize-robot-security-settings

第二步 代码:
参考了两个
爬虫部分:http://liuqh.icu/2021/07/15/go/package/26-colly/
钉钉群机器人发消息部分:https://www.cnblogs.com/xll970105/p/13176253.html

例子代码:

package mainimport ("bytes""crypto/hmac""crypto/sha256""encoding/base64""encoding/json""fmt""io/ioutil""net/http""strings""time""github.com/gocolly/colly/v2"
)func main() {DouBanBook()
}// 豆瓣书榜单
func DouBanBook() error {// 获取钉钉群消息机器人urlurl := Sign()// 创建 Collector 对象collector := colly.NewCollector()// 在请求之前调用collector.OnRequest(func(request *colly.Request) {fmt.Println("回调函数OnRequest: 在请求之前调用")})// 请求期间发生错误,则调用collector.OnError(func(response *colly.Response, err error) {fmt.Println("回调函数OnError: 请求错误", err)})// 收到响应后调用collector.OnResponse(func(response *colly.Response) {fmt.Println("回调函数OnResponse: 收到响应后调用")})//OnResponse如果收到的内容是HTML ,则在之后调用collector.OnHTML("ul[class='subject-list']", func(element *colly.HTMLElement) {// 遍历lielement.ForEach("li", func(i int, el *colly.HTMLElement) {// 获取封面图片coverImg := el.ChildAttr("div[class='pic'] > a[class='nbg'] > img", "src")// 获取书名bookName := el.ChildText("div[class='info'] > h2")// 获取发版信息,并从中解析出作者名称authorInfo := el.ChildText("div[class='info'] > div[class='pub']")split := strings.Split(authorInfo, "/")author := split[0]fmt.Printf("封面: %v 书名:%v 作者:%v\n", coverImg, trimSpace(bookName), author)ddtext := fmt.Sprintf("![%s](%s)<br/> 书名:%s,  作者:%s <br/>", trimSpace(bookName), coverImg, trimSpace(bookName), author)fmt.Println(ddtext)// 发送消息dingToInfo(bookName, ddtext, url)})})// 发起请求return collector.Visit("https://book.douban.com/tag/小说")
}// 删除字符串中的空格信息
func trimSpace(str string) string {// 替换所有的空格str = strings.ReplaceAll(str, " ", "")// 替换所有的换行return strings.ReplaceAll(str, "\n", "")
}// 签名生成算法
func hmacSha256(stringToSign string, secret string) string {h := hmac.New(sha256.New, []byte(secret))h.Write([]byte(stringToSign))return base64.StdEncoding.EncodeToString(h.Sum(nil))
}// Sign 加密生成钉钉签名
func Sign() string {secret := "钉钉群机器人secret"webhook := "钉钉群机器人webhook"timestamp := time.Now().UnixNano() / 1e6stringToSign := fmt.Sprintf("%d\n%s", timestamp, secret)sign := hmacSha256(stringToSign, secret)url := fmt.Sprintf("%s&timestamp=%d&sign=%s", webhook, timestamp, sign)return url
}// 钉钉初始化
func dingToInfo(t, s, url string) bool {content, data := make(map[string]string), make(map[string]interface{})content["title"] = tcontent["text"] = sdata["msgtype"] = "markdown"data["markdown"] = contentb, _ := json.Marshal(data)resp, err := http.Post(url,"application/json",bytes.NewBuffer(b))if err != nil {fmt.Println(err)}defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)fmt.Println(string(body))return true
}
关键字:免费推广的平台_免费申请网站官网_网络营销策划方案范文_google推广seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: