手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:goquery

利用 goquery 来取数据

 早期抓取数据都是偷懒用phpquery。用起来真心方便啊。刷刷刷的数据就取回来了。毕竟phpQuery还是相当模拟了jQuery的操作的。但现在在用go。怎么办?

其实go也有类似的工具,比如goquery,但使用起来确实不如phpQuery方便。举个小例子说明一下吧:

获取li数据中的第二个数据,那么jquery一般是这样写:$('li:eq(1)'),phpQuery呢。基本上也这样。pq('li:eq(1)'),但到了goquery就不能这样写了。我开始这样写的时候一直取不到数据。后来 才发现。。原来goquery必须得这样写:doc.Find("li").Eq(1)。虽然phpquery等也有类似方法,但如果放在Find里面不就好了嘛。真是的

OK写个简单的例子。。

XML/HTML代码
  1. var doc * goquery.Document  
  2. var e error  
  3. if doc, e = goquery.NewDocument(PROXY_FOREIGN_PAGE_URL); e != nil {  
  4.     ConsoleLog(e)  
  5.     return ;  
  6. }  
  7. doc.Find("tr ").Each(func(i int, ss * goquery.Selection) {  
  8.     s := *ss.Find("td");  
  9.     if s.Length() == 6 {  
  10.         port , _ :strconv.Atoi(s.Eq(1).Text());  
  11.         if port > 1 {  
  12.             var pInfo ProxyInfo  
  13.             pInfo.Ip = IpString(s.Eq(0).Text());  
  14.             pInfo.Port = PortString(s.Eq(1).Text());  
  15.             ProxyInfoLists = append(ProxyInfoLists , pInfo);  
  16.         }  
  17.   
  18.     }  
  19. })  
goquery的项目地址是:github.com/PuerkitoBio/goquery

Tags: goquery, phpquery