Go 爬虫:如何获取 js 文件中固定的内容?
栏目: JavaScript · 发布时间: 7年前
内容简介:我想爬豆瓣电影的分类,网址是我自己看了一下接口调用,发现这些分类竟然是在妹的,这就尴尬了,我岂不是要等待浏览器渲染完之后再匹配我想要的数据?
简介
我想爬豆瓣电影的分类,网址是 https://movie.douban.com/tag/ 。发现调用接口,返回的数据并没有我所需要的内容。
我自己看了一下接口调用,发现这些分类竟然是在 app.js 的二维数组固定写死的。
妹的,这就尴尬了,我岂不是要等待浏览器渲染完之后再匹配我想要的数据?
查查 Go 有没有库可以模拟浏览器的操作。发现了一个 chromedp 。于是查找了一些资料,学习了一下。
github地址
仓库地址: https://github.com/chromedp/chromedp
例子地址: https://github.com/chromedp/examples
参考的文档:
https://deepzz.com/post/golang-context-package-notes.html
https://www.cnblogs.com/apocelipes/p/9264673.html
https://codeday.me/news/20170529/20419.html代码
获取豆瓣网站的电影分类。
// Command text is a chromedp example demonstrating how to extract text from a
// specific element.
package main
import (
"context"
"fmt"
"log"
"os"
"regexp"
"time"
"github.com/chromedp/chromedp"
"github.com/chromedp/chromedp/runner"
)
func text(res *string) chromedp.Tasks {
return chromedp.Tasks{
// 访问页面
chromedp.Navigate(`https://movie.douban.com/tag/`),
// 等待列表渲染
chromedp.Sleep(5 * time.Second),
// 获取获取服务列表HTML
chromedp.OuterHTML("#content", res, chromedp.ByID),
}
}
func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// 创建 chrome 实例
cdp, err := chromedp.New(ctx, chromedp.WithLog(log.Printf))
if err != nil {
log.Fatal(err)
}
var res string
//执行调用
err = cdp.Run(ctx, text(&res))
if err != nil {
log.Fatal(err)
}
// 调用 Shutdown
err = cdp.Shutdown(ctx)
if err != nil {
log.Fatal(err)
}
// 等待 chrome 结束
err = cdp.Wait()
if err != nil {
log.Fatal(err)
}
// 正则匹配所要的内容
pattern := `class="tag">(.*?)</span>`
rp2 := regexp.MustCompile(pattern)
data := rp2.FindAllStringSubmatch(res, -1)
// 创建一个 txt 文件,写入获取的内容
f, err := os.Create("fenlei.txt")
if err != nil {
log.Fatalln(err)
}
// 关闭 f
defer f.Close()
// 遍历切片,获取需要的内容,并写入 txt 文件
for i := 0; i < len(data); i++ {
fmt.Println(data[i][1])
f.WriteString(data[i][1] + "\n")
}
}
以上所述就是小编给大家介绍的《Go 爬虫:如何获取 js 文件中固定的内容?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Python爬虫--- 1.5 爬虫实践: 获取百度贴吧内容
- Golang 爬虫快速入门 | 获取B站全站的视频数据
- java爬虫系列第三讲-获取页面中绝对路径的各种方法
- 网络爬虫正成为中国私募机构获取超额收益的下一个来源
- 爬虫需谨慎,那些你不知道的爬虫与反爬虫套路!
- 反爬虫之字体反爬虫
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
图解TCP/IP : 第5版
[日]竹下隆史、[日]村山公保、[日]荒井透、[日]苅田幸雄 / 乌尼日其其格 / 人民邮电出版社 / 2013-7-1 / 69.00元
这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。 书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。 本书适合计算机网络的开发、管理人员阅读,也可作为大专院校相关专业的教学参考......一起来看看 《图解TCP/IP : 第5版》 这本书的介绍吧!