Meizar golang实现抓取图片 Meizar

polaris • 3038 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
golang实现抓取妹子图 默认图片来源网站:[http://jandan.net](http://jandan.net/) 依赖项目:[https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) 编译源码前,请准备好以上项目, 方法: <pre class="brush:cpp ;toolbar: true; auto-links: false;">go get github.com/PuerkitoBio/goquery</pre> ### [](https://github.com/qibin0506/Meizar/blob/master/README.md#如何使用)如何使用 window用户可以直接下载win_exe目录下在的zip文件,解压出一个main.exe文件。 其他平台用户,可以自行下载源码编译。 使用步骤(以windows为例): 1. 打开命令行定位到编译文件所在目录 2. 输入命令: main.exe -dir D:\jandan -start 2009 ### [](https://github.com/qibin0506/Meizar/blob/master/README.md#参数说明)参数说明 1. -dir 可选, 制定图片保存路径,默认保存当前目录/images/下 2. -start 可选,从多少页开始,默认从第2009页开始抓取(注意程序是按照页码倒序抓取的) 3. -cookie 可选,用户使用的cookie, chrome下可以打开[http://jandan.net](http://jandan.net/),按F12键,选择network项查看,这个参数主要在抓取时发生503错误使用的,默认不用指定 ### [](https://github.com/qibin0506/Meizar/blob/master/README.md#效果)效果 [![image](https://github.com/qibin0506/Meizar/raw/master/art/1.png)](https://github.com/qibin0506/Meizar/blob/master/art/1.png) 图片就不展示了, 大家可以自己运行看。 ### [](https://github.com/qibin0506/Meizar/blob/master/README.md#扩展)扩展 默认图片来源是[煎蛋](http://jandan.net/)上的, 但是作为一个___,难道一个煎蛋就满足了吗?不可能!!!! 所以,我们还可以自定义抓取规则,来抓取不同网站的内容。 怎么定制? 只需要实现Rule接口的3个方法就可以了。例如煎蛋的抓取规则是: <pre class="brush:cpp ;toolbar: true; auto-links: false;">// /rule/jandanRule.go type JandanRule struct{} func (p *JandanRule) UrlRule() (url string) { return &#34;http://jandan.net/ooxx/&#34; } func (p *JandanRule) PageRule(currentPage int) (page string) { return &#34;page-&#34; + strconv.Itoa(currentPage) } func (p *JandanRule) ImageRule(doc *goquery.Document, f func(image string)) {     doc.Find(&#34;a.view_img_link&#34;).Each(func(i int, s *goquery.Selection) { if img, exist := s.Attr(&#34;href&#34;); exist { f(img)         }     }) }</pre> 1. 第一个方法返回我们要抓取的url 2. 第二个方法根据当前页返回url后面的页面信息 3. 第三个方法是内容匹配规则, 将匹配到的内容利用f函数返回
授权协议:
Apache
开发语言:
Google Go 查看源码»
操作系统:
跨平台
3038 次点击  
加入收藏 微博
8 回复  |  直到
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传