文档章节

不可描述的爬虫

Upcyan
 Upcyan
发布于 2017/06/05 11:03
字数 268
阅读 20
收藏 0
点赞 0
评论 0
package main

import (
	"net/http"
	"io/ioutil"
	"regexp"
	"strings"
	"os"
	"strconv"
	"fmt"
)

func Check(err error) {
	defer func() { err = nil }()
	if err != nil {
		println("****ERROR****")
		panic(err)
	}
}

// 获取网页
func GetHTML(url string) (body string) {
	res, err := http.Get(url)
	Check(err)
	defer res.Body.Close()
	// 网页格式化
	data, err := ioutil.ReadAll(res.Body)
	Check(err)
	body = string(data)
	return
}

// 获取下载文件
func downloadfile(url string) (file []byte) {
	res, err := http.Get(url)
	Check(err)
	defer res.Body.Close()
	// 格式化
	file, err = ioutil.ReadAll(res.Body)
	Check(err)
	return
}

func main() {
	println("======================================================\n")
	println("\t小图片爬取程序\n")

	// 爬取页码
	//pages := []string{"2", "3", "4", "5", "6", "7", "8", "9", "10"}
	pages := []string{"2"}
	for _, index := range pages {
		GetImages("http://boards.4chan.org/s/" + index + "/")
	}
}

// 图片匹配正则
var imageItemExp = regexp.MustCompile(`"//i\.4cdn\.org/s/[0123456789]+s\.jpg"`)

// 下载图片方法
func GetImages(url string) {

	// 提取图片链接
	body := GetHTML(url)
	imgs := imageItemExp.FindAllStringSubmatch(body, 10000)
	// 链接格式化(去掉引号)
	imgUrl := make([]string, 0)
	for _, v := range imgs {
		u := strings.Replace(v[0], "\"", "", -1)
		url := u[0:28]
		imgUrl = append(imgUrl, url)
	}

	// 创建目录
	dirName := "图片存放目录"
	os.MkdirAll(dirName, 0777)
	// 下载图片
	for i, v := range imgUrl {
		fileName := "./" + dirName + "/img-" + strconv.Itoa(i) + ".jpg"

		data := downloadfile("http:" + v + ".jpg")

		// 保存文件
		if err := ioutil.WriteFile(fileName, data, 0666); err != nil {
			println("****下载错误****")
			panic(err)
		} else {
			fmt.Println("下载图片:", fileName)
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
Upcyan
粉丝 0
博文 25
码字总数 12134
作品 0
合肥
基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件--nutch-htmlunit

Nutch Htmlunit Plugin 重要说明: 当前项目基于Nutch 1.X系列已停止更新维护,转向Nutch 2.x系列版本的新项目:http://www.oschina.net/p/nutch-ajax 项目简介 基于Apache Nutch 1.8和Htmlu...

xautlx ⋅ 2013/09/23 ⋅ 1

xautlx/nutch-htmlunit

---------------------------------------------------------------------------------------------------------- 提示:当前版本项目停止更新,最新Apache Nutch 2.X版本实现请访问: http......

xautlx ⋅ 2014/08/07 ⋅ 0

【01】基础:集搜客爬虫软件安装

前言 漫漫网页数据大海洋,有一种数据搬运工的生物存在,他可能是数据分析师、也可能是爬虫工程师、也可能是业务员...等等。 作为一名程序员,接下来的一系列教程不谈编程,来教大家学开车。...

fullerhua ⋅ 2016/09/08 ⋅ 0

关于webmagic的建议

@黄亿华 你好,想跟你请教个问题: webmagic非常不错:) 建议添加功能 1 持久化模块 2 把简单的爬虫如针对单一网站单一栏目的爬虫 用xml平配置 自动解析并实现爬虫。 相对于爬虫的傻瓜版本,...

javaex999 ⋅ 2013/11/10 ⋅ 1

使用python,scrapy写(定制)爬虫的经验,资料,杂。

近期找工作略不顺。技术无用。晚上写下了这点东西。 首先说下最近在找工作的x的大概相关技术加点路线。py 3年+,linux日常熟练,限于不擅web、手机app开发,一直无太好的可展示的东西。前段时...

斑ban ⋅ 2013/12/27 ⋅ 7

vscrawler 0.2.1发布,适合用作抓取的爬虫框架

VSCrawler是一个适合用作抓取的爬虫框架,在更多场景倾向于功能扩展性而牺牲使用简便性。这让VSCrawler非常强大,让他可以灵活的应对目标网站的反爬虫策略。 vscrawler有挺多特点 1. 多用户登...

virjar ⋅ 2017/12/16 ⋅ 8

Java爬虫框架

一、 模块 1. Scheduler Scheduler负责启动爬虫,停止爬虫,监控爬虫的状态。 Scheduler在调度爬虫时,借助于Quartz,设置爬虫在某个时刻启动。同一个名字的爬虫是stateful的。 Task:初始化...

超人学院 ⋅ 2016/07/26 ⋅ 0

网络爬虫 | 你不知道的暗网是如何被抓取的?

物理学研究表明,在目前宇宙所有物质的总体质量中,星系等可见物质只占其中的20%,不可探测的暗物质则占据了总质量的大约80%。互联网中的暗网可与宇宙中的暗物质相类比,而其所占的比例更是大...

努力拼搏的80后 ⋅ 01/21 ⋅ 0

webmagic 0.3.1发布,若干bug修复

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。 更新内容如下: 修复了0.3.0版本中,注解模式的空指针错误,感谢@cmlq 发现问题;...

黄亿华 ⋅ 2013/09/08 ⋅ 15

关于从新浪微博中获取数据的问题

最近接到一个任务,要求从新浪微博中获取一些信息 具体要求如下: 以某一个政府机构的微博为基点,找出这个微博的 关注数,粉丝数,微博数 1.找出该政府微博关注的微博,并找出该被关注微博的...

明月照大江 ⋅ 2012/11/14 ⋅ 9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部