PAOLO 发表于 2023-3-16 13:06

Go语言之淘宝登录

package main

import (
        "fmt"
        "net/http"
        "net/url"
        "strings"

        "github.com/PuerkitoBio/goquery"
)

func main() {
        // 设置登录的账号和密码
        username := "your_username"
        password := "your_password"

        // 建立HTTP客户端并发送登录请求
        client := &http.Client{}
        loginURL := "https://login.taobao.com/member/login.jhtml"
        req, err := http.NewRequest("GET", loginURL, nil)
        if err != nil {
                fmt.Println("Failed to create login request")
                return
        }
        resp, err := client.Do(req)
        if err != nil {
                fmt.Println("Failed to send login request")
                return
        }

        // 获取登录所需的参数
        doc, err := goquery.NewDocumentFromReader(resp.Body)
        if err != nil {
                fmt.Println("Failed to parse login page")
                return
        }
        loginForm := doc.Find("#J_LoginForm")
        action, _ := loginForm.Attr("action")
        loginParams := url.Values{}
        loginForm.Find("input").Each(func(_ int, s *goquery.Selection) {
                name, _ := s.Attr("name")
                value, _ := s.Attr("value")
                loginParams.Set(name, value)
        })

        // 将账号和密码添加到登录参数中
        loginParams.Set("TPL_username", username)
        loginParams.Set("TPL_password", password)

        // 发送登录POST请求
        loginReq, err := http.NewRequest("POST", action, strings.NewReader(loginParams.Encode()))
        if err != nil {
                fmt.Println("Failed to create login POST request")
                return
        }
        loginReq.Header.Set("Content-Type", "application/x-www-form-urlencoded")
        loginResp, err := client.Do(loginReq)
        if err != nil {
                fmt.Println("Failed to send login POST request")
                return
        }

        // 打印登录后的页面内容
        loggedInDoc, err := goquery.NewDocumentFromReader(loginResp.Body)
        if err != nil {
                fmt.Println("Failed to parse logged in page")
                return
        }
        fmt.Println(loggedInDoc.Text())
}

wang8118 发表于 2023-3-16 13:42

熊猫拍板砖 发表于 2023-3-16 13:37

就想问一下,你这个错误处理谁教的?是一点都不打印err啊,重点全在err里,还有,这个真能登录成功吗

psvajaz 发表于 2023-3-16 13:27

淘宝登录会出现滑块,go语言可以跳过吗?

zhaoz5 发表于 2023-3-16 13:14

谢谢楼主分享

Gxiaojia 发表于 2023-3-16 13:27

感谢大佬分享

jianjundx 发表于 2023-3-16 13:33

支持支持

jeromelin2023 发表于 2023-3-16 13:39

这什么用

ameiz 发表于 2023-3-16 13:43

大佬,验证码怎么跳过的

lordship 发表于 2023-3-16 13:47

谢谢楼主分享
页: [1] 2 3
查看完整版本: Go语言之淘宝登录