Commit b383f7cd by 庄欣

baidu

parent ffb645fb
<style>
.__messagebox_container {
width: 30%;
margin: 0 auto;
}
._button_groups {
margin: 10px auto;
display: flex;
justify-content: space-between;
width: 70%;
}
.btn {
width: auto;
padding-left: 20px;
padding-right: 20px;
background: #0277bd;
border: none;
height: 30px;
color: white;
border-radius: 2px;
}
.pushContent {
margin: 0 auto;
width: 100%;
text-align: left;
}
</style>
<div class="__messagebox_container">
站内Push内容(可修改)
<div class="_button_groups">
<button class="btn btn-primary " v-if="authType == 'auth'" v-on:click="">要授权</button>
<button class="btn btn-primary" v-if="authType == 'pic'" v-on:click="">要大图</button>
</div>
<div class="auth">
<textarea cols="50" rows="15" class="pushContent">
亲爱的摄影师,您的作品非常符合米拍有米计划的投稿标准,
我们期望获得您的授权,允许我们在有米计划中使用您的作品,
发布到vivo、OPPO、小米、华为锁屏等平台进行内容流量增值。
若上架的平台有现金收益,我们将在社区内给予结算。若您同意使用,
请联系米拍编少微信mepai110,进行详细沟通。
</textarea>
</div>
<div class="">
<div class="_button_groups">
<div>
<button class="btn">仅发送米拍站内PUSH</button>
</div>
<div>
<button class="btn">发送PUSH和短信</button>
</div>
</div>
</div>
</div>
\ No newline at end of file
bdshare_firstime=1561087143170; rpln_guide=1; CLIENTWIDTH=981; CLIENTHEIGHT=1853; PSTM=1617857875; BIDUPSID=F5134C48928C5D7823A67C39182C624B; st_key_id=17; 951211003_FRSVideoUploadTip=1; video_bubble951211003=1; wise_device=0; Hm_lvt_287705c8d9e2073d13275b18dbd746dc=1618378474,1619430044; Hm_lpvt_287705c8d9e2073d13275b18dbd746dc=1619430044; BAIDUID=2A8977EA1BBD3D0D0460FA70F35C42C0:FG=1; __yjs_duid=1_f3e997609488b2fad3caa69652b6bed41620626054084; H_PS_PSSID=33797_33818_31253_34004_33607_33891; BDSFRCVID=uo_OJexroG38vSnewmDdU1-NtgKKg9TTDYLtOwXPsp3LGJLVgMtPEG0Pt8i0Cou-dk83ogKKXgOTHw0F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tJPf_IIKJCL3fP36q45HMt00qxby26PLbD39aJ5nQI5nhInuX5jq5j_ZQ2c3hlRQbN5PoqnOQUbmjRO206oay6O3LlO83h5MBmQTKl0MLPbaVl3OBUvD-6tuhMnMBMnv52OnaP0M3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDFle5DWjjbQjHRabK6aKC5bL6rJabC3VCDxXU6q2bDeQN-OabO95R5v3fTGt66zhKooyT3JXp0vWq54WbbvLT7johRTWqR4en7RefonDh83Qf7n3-RtKH8H5x5O5hvvob3O3M7bDMKmDloOW-TB5bbPLUQF5l8-sq0x0bOte-bQXH_EJ6FDJnCjVCIQbRrEDnuz-PvE-PnHMx8X5-RLfb57bp7F5l8-hR49hjQj04LWhp32L6_L5KQLaK5KKfbxOKQO0xnJy44b-4vILhKjtIOIXD3N3KJm_pC9bT3v5tD8bt7J2-biWabM2MbdbKJP_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6KWD6J0DNKtqbbfb-oEBn58KRI_Hn7zep3r5M4pbt-qJtr-bejfQJ55a4j0SDDzXROJ0n_13GbnBT5Ka2-tLDJmKJncoMcHMjjiyMIkQN3TBpLO5bRiLRoY5p4KDn3oyp7JXp0n5N3ly5jtMgOBBJ0yQ4b4OR5JjxonDh83bG7MJUutfJKO_KL-JKP3H48k-4QEbbQH-UnLqbQyX2OZ04n-ah05b-Qbh4obhf0O3HLLWJ3MW23MVxbm3UTdfh76Wh35K5tTQP6rLtbubNR4KKJxbInEhhOv5DcfMTvyhUJiBhvMBan7LKJIXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtpChbRO4-TFMj5cXjMK; video_bubble0=1; BDUSS=R6aHI1dnl1WWstREVDNTBUQkdrNHdqREplN1lzOWMxUjRTV0swZTZrOWt3c1ZnRVFBQUFBJCQAAAAAAAAAAAEAAAD7U7I4RGVjRmlmdGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ1nmBkNZ5gb1; BDUSS_BFESS=R6aHI1dnl1WWstREVDNTBUQkdrNHdqREplN1lzOWMxUjRTV0swZTZrOWt3c1ZnRVFBQUFBJCQAAAAAAAAAAAEAAAD7U7I4RGVjRmlmdGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ1nmBkNZ5gb1; STOKEN=c8d67669d074214d4a58e4062605116fe0ae0e89a51325def68ed49a565d4e62; Hm_lvt_98b9d8c2fd6608d564bf2ac2ae642948=1620963198,1620968644,1620979542,1620985932; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID_BFESS=uo_OJexroG38vSnewmDdU1-NtgKKg9TTDYLtOwXPsp3LGJLVgMtPEG0Pt8i0Cou-dk83ogKKXgOTHw0F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tJPf_IIKJCL3fP36q45HMt00qxby26PLbD39aJ5nQI5nhInuX5jq5j_ZQ2c3hlRQbN5PoqnOQUbmjRO206oay6O3LlO83h5MBmQTKl0MLPbaVl3OBUvD-6tuhMnMBMnv52OnaP0M3fAKftnOM46JehL3346-35543bRTLnLy5KJYMDFle5DWjjbQjHRabK6aKC5bL6rJabC3VCDxXU6q2bDeQN-OabO95R5v3fTGt66zhKooyT3JXp0vWq54WbbvLT7johRTWqR4en7RefonDh83Qf7n3-RtKH8H5x5O5hvvob3O3M7bDMKmDloOW-TB5bbPLUQF5l8-sq0x0bOte-bQXH_EJ6FDJnCjVCIQbRrEDnuz-PvE-PnHMx8X5-RLfb57bp7F5l8-hR49hjQj04LWhp32L6_L5KQLaK5KKfbxOKQO0xnJy44b-4vILhKjtIOIXD3N3KJm_pC9bT3v5tD8bt7J2-biWabM2MbdbKJP_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6KWD6J0DNKtqbbfb-oEBn58KRI_Hn7zep3r5M4pbt-qJtr-bejfQJ55a4j0SDDzXROJ0n_13GbnBT5Ka2-tLDJmKJncoMcHMjjiyMIkQN3TBpLO5bRiLRoY5p4KDn3oyp7JXp0n5N3ly5jtMgOBBJ0yQ4b4OR5JjxonDh83bG7MJUutfJKO_KL-JKP3H48k-4QEbbQH-UnLqbQyX2OZ04n-ah05b-Qbh4obhf0O3HLLWJ3MW23MVxbm3UTdfh76Wh35K5tTQP6rLtbubNR4KKJxbInEhhOv5DcfMTvyhUJiBhvMBan7LKJIXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtpChbRO4-TFMj5cXjMK; delPer=0; PSINO=6; BA_HECTOR=850l0g8ga12h84a19c1ga3iqb0r; ab_sr=1.0.0_MTdhMmE4OWNmZjZjNTM3MjkxYzAxNTM2MzZmZWRjYWU0ZTg2ODA0ODA1ZTMwZTZmNWVjZWRkMjZhZTliM2U4MjY2MjNhMDk2NDE1ZjBmNzM1MDA0YjY4YmUzYjBjOGIyMDI5Njk4MDEzY2I2YjBmNjM2YTJjNjY5MGM3ZWZiMTM=; st_data=1a7ae18e54cee7aacaf9e7f584d1c77d5fcda167389a480b84d8a3da623ffc2aeed18617fca8aafc33d2a84d2570db4a92fc9e75065bac4666c6166e9dcacbb54abeb1df8cc346e2ea0fe20c03fc2b12cf7fbd143e3a417e84984a59af47ff4666e3f4a9b20d7a0fe0367de93f15a86ef88f1da7e1c7dd22d4935c442a66bda4; st_sign=f93ceb01; Hm_lpvt_98b9d8c2fd6608d564bf2ac2ae642948=1621216716
\ No newline at end of file
package main
import (
"fmt"
"mepai_t/service"
"os"
)
func main() {
if len(os.Args) == 1 {
fmt.Println("!!您需要输入要采集的贴吧页面地址")
return
}
service.Open(os.Args[1])
}
package service
import (
"context"
"errors"
"fmt"
"github.com/chromedp/cdproto/cdp"
"github.com/chromedp/cdproto/network"
"github.com/chromedp/cdproto/runtime"
"github.com/chromedp/chromedp"
"io/ioutil"
"log"
"math/rand"
"net/http"
"os"
"strings"
"time"
)
type User struct {
Nickname string
Avatar string
Gender int
}
func SaveUser(users []User) {
avatars := "./avatars/"
for _,u := range users {
if strings.Contains(u.Avatar, "tb2.bdstatic.com/tb/static-pb/img/head_80") {
continue
}
file,_ := os.OpenFile(avatars + u.Nickname, os.O_WRONLY|os.O_CREATE, 0666)
res,err := http.Get(u.Avatar)
if !strings.Contains(u.Avatar, "http") {
u.Avatar = "https:" + u.Avatar
}
if err != nil {
fmt.Printf("无法访问:%s", u.Avatar)
continue
}
defer res.Body.Close()
data,_ := ioutil.ReadAll(res.Body)
file.Write(data)
file.Close()
}
}
func Open(url string) {
options := []chromedp.ExecAllocatorOption{
chromedp.Flag("headless",true),
chromedp.Flag("blink-settings","imageEnable=false"),
chromedp.UserAgent(`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko)`),
}
c,_ := chromedp.NewExecAllocator(context.Background(),options...)
chromeCtx, cancel := chromedp.NewContext(c,chromedp.WithLogf(log.Printf))
_ = chromedp.Run(chromeCtx, make([]chromedp.Action, 0, 1)...)
timeOutCtx, cancel := context.WithTimeout(chromeCtx, 6000* time.Second)
defer cancel()
var users []User
chromedp.Run(chromeCtx, setCookies(getCookies()))
chromedp.Run(timeOutCtx,
chromedp.Navigate(url),
chromedp.ActionFunc(func(ctx context.Context) error {
Loop:
time.Sleep(time.Duration(rand.Intn(10))* time.Second)
var nodes []*cdp.Node
users = users[0:0]
chromedp.Nodes("#j_p_postlist > div > div.d_author > ul > li.icon > div > a > img", &nodes).Do(ctx)
for _, node := range nodes {
src := node.AttributeValue("src")
username := node.AttributeValue("username")
users = append(users, User{
Avatar: src,
Nickname: username,
Gender: -1,
})
}
SaveUser(users)
chromedp.ScrollIntoView("#tb_rich_poster > div.poster_head.clearfix > div.poster_head_text > a").Do(ctx)
goLoop := chromedp.WaitVisible("#thread_theme_7 > div.l_thread_info > ul > li.l_pager.pager_theme_5.pb_list_pager > a:nth-child(7)",
chromedp.ByQuery, chromedp.AtLeast(0), chromedp.After(func(ctx2 context.Context, id runtime.ExecutionContextID, node ...*cdp.Node) error {
chromedp.Click("#thread_theme_7 > div.l_thread_info > ul > li.l_pager.pager_theme_5.pb_list_pager > a:nth-child(7)").Do(ctx2)
return errors.New("go");
}),
).Do(ctx)
if goLoop != nil {
goto Loop
}
return nil
}),
);
}
func getCookies() map[string]string {
file,err := ioutil.ReadFile("./data/cookie.txt")
if err != nil {
fmt.Println(err.Error())
return nil
}
cstr := string(file)
arr := strings.Split(cstr, "; ")
res := make(map[string]string)
for _,v := range arr {
item := strings.Split(v, "=")
res[item[0]] = item[1]
}
return res
}
func setCookies(cookies map[string]string) chromedp.Tasks {
return chromedp.Tasks{
chromedp.ActionFunc(func(ctx context.Context) error {
var m *network.SetCookieParams
for name, value := range cookies {
m = network.SetCookie(name, value)
m = m.WithDomain("tieba.baidu.com")
m = m.WithHTTPOnly(true)
m.Do(ctx)
}
return nil;
}),
};
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment