文档章节

HTTP小爬虫

iNiL0119
 iNiL0119
发布于 2016/05/24 02:29
字数 221
阅读 133
收藏 4

1 爬取某个URL页面

var http = require('http')
// 所要爬取的页面url
var url = '...'
http.get(url, function (res) {
    var html = ''
    res.on('data',function (data) {
        html += data
    })
    res.on('end',function () {
        console.log(html)
    })
}).on('error',function () {
    console.log('获取页面数据出错!')
})

2 通过cheerio解析数据

首先安装cheerio模块: npm install cheerio

引入cheerio模块:require('cheerio')

var http = require('http')
var cheerio = require('cheerio')
var url = '...'
http.get(url, function (res) {
    var html = ''
    res.on('data',function (data) {
        html += data
    })
    res.on('end',function () {
        var html_obj = filterData(html)
        printInfo(html_obj)
    })
}).on('error',function () {
    console.log('获取页面数据出错!')
})
function filterData(html) {
    var $ = cheerio.load(html)
    var payObj = $('.payModeContent')
    var pay_types = payObj.find('.payName')
    var pay_icons = payObj.find('.payIcon img')
    var pay_type_array = []
    var pay_icon_array = []
    pay_types.each(function () {
        var pay_type = $(this).text()
        pay_type_array.push(pay_type)
    })
    pay_icons.each(function () {
        var pay_icon = $(this).attr('src').split('images/')[1]
        pay_icon_array.push(pay_icon)
    })
    var payInfo = {
        payType:pay_type_array,
        payIcon:pay_icon_array
    }
    return payInfo;
}
function printInfo(obj) {
    console.log(obj)
}

结果:

{ payType: [ '微信支付方式', '支付宝钱包支付', '储蓄卡支付' ],

  payIcon: [ 'weichatIcon.png', 'alipayIcon.png', 'depositcardpayIcon.png' ] }

© 著作权归作者所有

上一篇: 事件模型Events
下一篇: apache ab压力测试
iNiL0119
粉丝 7
博文 90
码字总数 88887
作品 0
杭州
前端工程师
私信 提问
大量 python 爬虫源码分享--说说 python 爬虫这件小事

没有爬虫就没有互联网,越来越觉得写 Python 爬虫原来是一件快乐而高兴的事情,以下是本人收集整理的一批 python 爬虫代码,顺便分享到了别的网站上,喜欢的下下来看看吧。 内容: yunpan.3...

赤尔宝丁
2016/05/03
2.5K
2
scrapyd:基于scrapy的爬虫发布管理工具

最近研究scrapy爬虫框架,在整站爬取上及其方便。但是因为boss的需求比较怪异,需要自动化的最大量不同站点做爬取,而scrapy实现上述功能又不够智能和方便。后来在scrapy文档里发现了scrapyd...

zp2006011242
2017/07/11
0
0
网络爬虫引擎 simspider 更新至 v2.4.0

simspider 2.4.0 发布了,改进内容包括: * 新增多路复用并发数自动调整机制 * 新增HTTP请求头自定义专用链表 * 自动增加Referer请求头选项 * 完善了主流程框架对事件的响应以提高性能 * cu...

calvinwilliams
2015/03/13
2.9K
7
网络爬虫引擎 simspider 更新至 v2.2.1

ver 2.2.1 2015-02-09 calvin * 修正了入口网址的内部自动补全问题 * 修正了删除请求队列后没有重置结果指针的安全编码问题 * 修正了WINDOWS平台的编译问题 ------------------------------...

calvinwilliams
2015/02/09
3.2K
1
simspider 更新至 v2.3.0,网络爬虫引擎

ver 2.3.0 2015-03-08 calvin * 增加错误码SIMSPIDER_ERROR_FUNCPROC_INTERRUPT,回调函数中返回该错误码,爬行过程立即中断 * 修改函数AppendRequestQueue原型 * 修改函数SimSpiderGo原型 ...

calvinwilliams
2015/03/08
986
1

没有更多内容

加载失败,请刷新页面

加载更多

js—String的一些方法

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var str="Hello boy" /** * 在底......

zhengzhixiang
17分钟前
3
0
vSphere ESXi 主机上的3种VLAN设置

VLAN - Virtual Local Area Network,虚拟局域网,能便捷地组建一个网络分组,并能提供诸多好处。VMware vSphere ESXi主机上,也可以在个层次上通过设置VLAN标签地形式来组建VLAN。从划分的层...

大别阿郎
39分钟前
5
0
elasticsearch 6.x的基本dsl语句

本文使用的谷歌浏览器插件sense,链接如下sense插件(兼容es6.x版本) 查看集群状态 http://106.12.27.130:9200/_cat/health?v 绿色-一切都很好(集群功能齐全) 黄色——所有的数据都是可用...

长恭
53分钟前
12
0
移动端的弹窗滚动禁止body滚动

本文转载于:专业的前端网站➼移动端的弹窗滚动禁止body滚动 前言 最近一个需求是弹窗展示列表,显然是需要一个滚动条的,而滚动到底部就会穿透到body滚动,而阻止默认行为是不行的,这样两个...

前端老手
今天
18
0
设计模式 建造者模式和模板方法模式扩展篇

建造者模式和模板方法模式扩展篇 UML 与抽象工厂模式比较 本模式可以看出与抽象工厂非常类似,都是产生不同的产品,怎么区分这两种设计的使用场景呢 - 建造者模式关注的是基本方法的调...

木本本
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部