TODO: twitch get all userid list
This commit is contained in:
6
tasks/twitch/twitch_task1/main.go
Normal file
6
tasks/twitch/twitch_task1/main.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package main
|
||||
|
||||
func main() {
|
||||
e := ChannelLink{}
|
||||
e.Execute()
|
||||
}
|
||||
@@ -2,13 +2,11 @@ package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"intimate"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/tebeka/selenium"
|
||||
"github.com/tebeka/selenium/chrome"
|
||||
)
|
||||
|
||||
// sstore 源存储实例, 为存储源数据的实现. 表格具体参考sql/intimate_source.sql
|
||||
@@ -25,32 +23,10 @@ type ChannelLink struct {
|
||||
|
||||
// Execute 执行任务
|
||||
func (cl *ChannelLink) Execute() {
|
||||
caps := selenium.Capabilities{"browserName": "chrome"}
|
||||
chromecaps := chrome.Capabilities{}
|
||||
err := chromecaps.AddExtension("/home/eson/test/ssh-key/0.1.2_0.crx")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
chromecaps.Args = append(chromecaps.Args, "--disk-cache-dir=/home/eson/test/ssh-key/cache")
|
||||
chromecaps.ExcludeSwitches = append(chromecaps.ExcludeSwitches, "enable-automation")
|
||||
caps.AddChrome(chromecaps)
|
||||
_, err = selenium.NewChromeDriverService("/usr/bin/chromedriver", 3030)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
wd, err := selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%d/wd/hub", 3030))
|
||||
defer func() {
|
||||
if err := wd.Close(); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}()
|
||||
wd.ExecuteScript("windows.navigator.webdriver = undefined", nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
var err error
|
||||
wd := intimate.GetChromeDriver(3030)
|
||||
|
||||
weburl := "https://www.twitch.tv/directory?sort=VIEWER_COUNT"
|
||||
|
||||
err = wd.Get(weburl)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@@ -81,6 +57,7 @@ func (cl *ChannelLink) Execute() {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// xpath: //article//a[@data-a-target='preview-card-title-link']
|
||||
for _, ele := range elements {
|
||||
href, err := ele.GetAttribute("href")
|
||||
if err != nil {
|
||||
@@ -94,4 +71,6 @@ func (cl *ChannelLink) Execute() {
|
||||
source.Url = weburl
|
||||
sstore.Insert(source)
|
||||
}
|
||||
|
||||
sstore.Deduplicate(intimate.TTwitchChannel, "source")
|
||||
}
|
||||
|
||||
@@ -8,3 +8,7 @@ func TestCase1(t *testing.T) {
|
||||
e := ChannelLink{}
|
||||
e.Execute()
|
||||
}
|
||||
|
||||
func TestLiveUrl(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user