有的网站是前端渲染的网页,这种情况下就无法用网络请求的方式获取数据,这里要用到自动化模式。
<br/>
先看一下这个网站
https://down.gamersky.com/Special/bigpc/
列表是js渲染的
直接上代码
```
package main
import (
"github.com/PeterYangs/article-spider/chromedpSpider"
"github.com/PeterYangs/article-spider/fileTypes"
"github.com/PeterYangs/article-spider/form"
)
func main() {
f := form.Form{
Host: "https://down.gamersky.com",
Channel: "/Special/bigpc/",
Limit: 2,
WaitForListSelector: "body > div.Mid > div.Mid2 > ul > li:nth-child(1)",
ListSelector: "body > div.Mid > div.Mid2 > ul > li",
ListHrefSelector: "div.tit > a",
DetailFields: map[string]form.Field{
"title": {Types: fileTypes.SingleField, Selector: "body > div.Mid > div.Mid2 > div.Mid2_L > div.Mid2L_ctt.block > div.Mid2L_actdl2 > div.tit"},
"img": {Types: fileTypes.SingleImage, Selector: "body > div.Mid > div.Mid2 > div.Mid2_L > div.Mid2L_ctt.block > div.Mid2L_actdl2 > div.game > div.img > img", ImageDir: "demo"},
},
NextSelector: "#pe100_page_jdgame > a.p1.nexe",
}
chromedpSpider.Start(f)
}
```
与其他模式不同
* **Channel**不需要替换页码,**PageStart**不需要填写
* **WaitForListSelector**是列表等待选择器,当此标签出现时才会进行下一步
* **NextSelector**下一页选择器
* 调用**chromedpSpider**开始运行,此模式基于[chromedp](https://github.com/chromedp/chromedp)
