go一个简单的爬虫(豆瓣)
最近在学习go语言爬虫,写了个小demo
package main import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
"strconv"
) type Movie struct {
name string
mark string
person string
time string
url string
} func main() {
chs := make([] chan int, 10)
sliceList := []int{1291841,26761416,1309220,1300741,1293172}
for i,v:=range sliceList{
go child(v, chs[i])
}
for _, ch := range chs {
<-ch
}
} func child(id int, ch chan int) {
url := "https://movie.douban.com/subject/" + strconv.Itoa(id) + "/"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
sHtml, _ := ioutil.ReadAll(resp.Body) movie := new(Movie) movie.name = GetValue(`<span\s*property="v:itemreviewed">(.*)</span>`, &sHtml)
movie.mark = GetValue(`<strong\s*class="ll\s*rating_num"\s*property="v:average">(.*)</strong>`, &sHtml)
movie.person = GetValue(`<a href="/celebrity/[0-9]+/" rel="v:directedBy">(.*)</a>`, &sHtml)
movie.time = GetValue(`<span property="v:runtime" content="(.*)">.*</span>`, &sHtml)
movie.url = GetValue(`<a href="(.*)" target="_blank" rel="nofollow">.*</a>`, &sHtml) fmt.Println(movie) ch <- 1
} func GetValue(rule string, sHtml *[] byte) string {
reg := regexp.MustCompile(rule)
result := reg.FindAllStringSubmatch(string(*sHtml), 1)
return result[0][1]
}
go一个简单的爬虫(豆瓣)的更多相关文章
- python (1)一个简单的爬虫: python 在windows下 创建文件夹并写入文件
1.一个简单的爬虫:爬取豆瓣的热门电影的信息 写在前面:如何创建本来存在的文件夹并写入 t_path = "d:/py/inn" #本来不存在inn,先定义路径,然后如果不存在,则 ...
- Python并发编程-一个简单的爬虫
一个简单的爬虫 #网页状态码 #200 正常 #404 网页找不到 #502 504 import requests from multiprocessing import Pool def get( ...
- python爬虫系列(1)——一个简单的爬虫实例
本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片. 1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容:分析html中 ...
- 【转】使用webmagic搭建一个简单的爬虫
[转]使用webmagic搭建一个简单的爬虫 刚刚接触爬虫,听说webmagic很不错,于是就了解了一下. webmagic的是一个无须配置.便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代 ...
- 用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...
- nodejs实现一个简单的爬虫
nodejs是js语言,实现一个爬出非常的方便. 步骤 1. 使用nodejs的request模块,获取目标页面的html代码:https://github.com/request/request 2 ...
- 爬虫浅谈一:一个简单c#爬虫程序
这篇文章只是简单展示一个基于HTTP请求如何抓取数据的文章,如觉得简单的朋友,后续我们再慢慢深入研究探讨. 图1: 如图1,我们工作过程中,无论平台网站还是企业官网,总少不了新闻展示.如某天产品经理跟 ...
- 一个简单java爬虫爬取网页中邮箱并保存
此代码为一十分简单网络爬虫,仅供娱乐之用. java代码如下: package tool; import java.io.BufferedReader; import java.io.File; im ...
- Python网络爬虫 - 一个简单的爬虫例子
下面我们创建一个真正的爬虫例子 爬取我的博客园个人主页首页的推荐文章列表和地址 scrape_home_articles.py from urllib.request import urlopen f ...
随机推荐
- el-table——可合并单元格的表格
<el-table v-loading="loading" :data="tableData" border :span-method="col ...
- asp.net mvc 防止跨站攻击
View @using (Html.BeginForm("Contact","Home",FormMethod.Post)) { @Html.AntiForge ...
- c# 选择结构
- centos6/7启动故障排错
centos6启动流程修复: 实验一:删除initramfs-2.6.32-754.el6.x86_64.img进行恢复 该文件很重要initramfs-2.6.32-754.el6.x86_64.i ...
- 8.vue-resource 数据请求基本实现
1.vue-resource 实现 get, post, jsonp请求:https://github.com/pagekit/vue-resource 注意: 除了 vue-resource 实现数 ...
- 关于Python的第一行语句
通常在脚本语言的第一行会看到#!/usr/bin/env python 与 #!/usr/bin/python其中之一,这两句话的目的都是指出你的python文件用什么可执行程序去运行它. #!/us ...
- bp算法推导过程
参考:张玉宏<深度学习之美:AI时代的数据处理与最佳实践>265-271页
- Windows安全应急响应(一)
入侵排查思路 检查账号安全 1.查看服务器是否有弱口令,远程管理端口是否对公网开放 2.查看服务器是否存在可以账号.新增账号 3.查看服务器是否存在隐藏账号.克隆账号检查方法:i.打开注册表,查看管理 ...
- 带参数的动态sql
CREATE PROC Procout(@input INT, @result INT output) AS BEGIN SET @result = @input END go DECLARE @in ...
- 揭秘PHP深受Web开发者喜爱的原因
我们再次回顾一下在软件开发的发展中非常有名的技术"PHP"(Hypertext Pre-Processor),它是由Rasmus Lerdorf在1995年发明的.开始阶段,PHP ...