package main
import (
"fmt"
"github.com/antchfx/htmlquery"
"github.com/kirinlabs/HttpRequest"
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
"strconv"
"strings"
"sync"
)
var db *mgo.Database
var c *mgo.Collection
func init(){
session, err := mgo.Dial("mongodb://localhost:27017") //连接数据库
if err != nil {
panic(err)
}
//defer session.Close()
session.SetMode(mgo.Monotonic, true)
db = session.DB("myjs") //数据库名称
c = db.C("fuli")
}
var wg sync.WaitGroup
func main() {
wg.Add(21)
for i:=1;i<22;i++{
go HttpImg("http://www.mntuxiu.com/page/"+ strconv.Itoa(i)+ "/")
}
wg.Wait()
}
func HttpImg(url string){
response, e := HttpRequest.Get(url)
if e != nil{
panic(e.Error())
}
bytes, e := response.Body()
html := string(bytes)
node, e := htmlquery.Parse(strings.NewReader(html))
list := htmlquery.Find(node, "//*[@id='index_ajax_list']/li/a/img")
for _,n := range list{
fmt.Println(n.Attr[2].Val,n.Attr[3].Val)
img, _ := HttpRequest.Get(n.Attr[2].Val)
byts, _ := img.Body()
e := c.Insert(&User{
Id_: bson.NewObjectId(),
Name: n.Attr[3].Val,
Bs64: byts,
})
if e !=nil{
panic(e)
}
}
wg.Done()
}
type User struct
{
Id_ bson.ObjectId `bson:"_id"`
Name string `bson:"name"`
Bs64 []byte `bson:"Bs64"`
}