命令行输入pyspider开启pyspider

浏览器打开http://localhost:5000/

group表示组名,几个项目可以同一个组名,方便管理,当组名修改为delete时,项目会在一天后自动删除。

status表示项目的状态,TODO工作环境,STOP停用状态,DEBUG调试状态,RUNNING运行状态。当设置为RUNNING状态时,点击右边actions的Run按钮,程序就会跑起来。actions中的Results按钮点击之后,查看程序爬取的结果,如图:

点击右上角,可以以不同格式查看爬取信息,点击url可以查看每个url爬取的任务ID,结果等信息。如图:

点击项目名,进入代码界面:

看代码,

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2019-03-24 13:51:31
# Project: demo

from pyspider.libs.base_handler import *
import datetime

class Handler(BaseHandler):
crawl_config = {
}

def __init__(self):
'''用户自定义,初始化变量'''
## 当前页码
self.page=1
## 通过观察网站,发现职位信息列表一共480页
self.totalpage=480
## 开始要爬取的网址
self.baseUrl="https://job.alibaba.com/zhaopin/positionList.htm#page/"

## every装饰器,每隔24*60分钟爬取一次,执行一次函数
@every(minutes=24 * 60)
def on_start(self):
while(self.page<=self.totalpage):
## validate_cert=False表示不验证证书,fetch_type='js'表示爬取js加载类型数据信息
self.crawl(self.baseUrl + str(self.page), callback=self.index_page,validate_cert=False,fetch_type='js')
self.page += 1

## age表示生命周期为10天
@config(age=10 * 24 * 60 * 60)
## 所有的返回信息都保存在response中
def index_page(self, response):
## 同pyquery解析爬到的网页源码,.items()返回爬取列表中所有结点数据
for each in response.doc('td > span > a').items():
## callback是回调函数,在执行完当前函数所有代码后再调用回调函数
self.crawl(each.attr.href, callback=self.detail_page,validate_cert=False)

## priority表示优先级,越大优先级越高,最大9999
@config(priority=2)
def detail_page(self, response):
## 获取当前抓取时间
now_data=datetime.datetime.now()
return {
"acquistion_time":now_data.__str__(),
"url": response.url,
"title": response.doc('title').text(),
"detail-content":response.doc('.detail-content').text()
}

然后看左边编辑器,

每次编辑好右边代码后点击右上角SAVE按钮保存,然后点击RUN,运行程序

follows表示当前执行回调函数on_start执行之后,有多少此回调index_page函数,传入参数self。点击follows,出现每一个index_page函数传入的self中的链接,对应链接右边的向右箭头,执行该index_page函数。

点击第一个index_page函数右边箭头之后,点击web按钮,显示index_page传入链接的网页如图,点击html按钮,是web网页对应的源码,点击follows如图,显示执行index_page回调函数后的结果,即列表页信息。

然后,在点击web按钮后,点击enable css selector helper按钮,选中web网页中对应职位标题,单击选中,然后点击左边窗体右上角的箭头,就会将对应选择结点的CSS选择器自动生成到右边代码编辑区鼠标定位处。

继续回来,点击follows,然后点击detail_page回调函数右边的箭头执行每个detail_page回调函数,则爬取了detail_page返回的内容,即详情页信息,每个职位的详细信息。

messages按钮表示右边代码中return的信息,及控制台提示信息、报错信息等。

pyspider爬虫框架webui简介-爬取阿里招聘信息的更多相关文章

  1. 爬虫框架之Scrapy——爬取某招聘信息网站

    案例1:爬取内容存储为一个文件 1.建立项目 C:\pythonStudy\ScrapyProject>scrapy startproject tenCent New Scrapy projec ...

  2. 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)

    上次挖了一个坑,今天终于填上了,还记得之前我们做的拉勾爬虫吗?那时我们实现了一页的爬取,今天让我们再接再厉,实现多页爬取,顺便实现职位和公司的关键词搜索功能. 之前的内容就不再介绍了,不熟悉的请一定要 ...

  3. 爬取拉勾网招聘信息并使用xlwt存入Excel

    xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...

  4. Python爬虫框架Scrapy获得定向打击批量招聘信息

    爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这样的说法不够专业,更专业的描写叙述就是.抓取特定站点网页的HTML数据.只是因为一个站点的网页非常多,而我们又不可能事先知道全部网页的URL地址, ...

  5. Python爬取拉勾网招聘信息并写入Excel

    这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...

  6. Java爬虫框架WebMagic入门——爬取列表类网站文章

    初学爬虫,WebMagic作为一个Java开发的爬虫框架很容易上手,下面就通过一个简单的小例子来看一下. WebMagic框架简介 WebMagic框架包含四个组件,PageProcessor.Sch ...

  7. 爬虫框架Scrapy入门——爬取acg12某页面

    1.安装1.1自行安装python3环境1.2ide使用pycharm1.3安装scrapy框架2.入门案例2.1新建项目工程2.2配置settings文件2.3新建爬虫app新建app将start_ ...

  8. python-scrapy爬虫框架爬取拉勾网招聘信息

    本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...

  9. Scrapy框架——CrawlSpider爬取某招聘信息网站

    CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而Craw ...

随机推荐

  1. 杭电ACM2015--偶数求和

    偶数求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. 3. 基于优先级的Queue(PriorityBlockingQueue)

    package com.gf.conn013; import java.util.Iterator; import java.util.concurrent.PriorityBlockingQueue ...

  3. java SPI机制

    1. SPI是Service Provider Interfaces的简称.根据Java的SPI规范,我们可以定义一个服务接口,具体的实现由对应的实现者去提供,即Service Provider(服务 ...

  4. Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送

    laravel5.5 邮件驱动 Laravel 支持多种邮件驱动,包括 smtp.Mailgun.Maildrill.Amazon SES.mail 和 sendmail.Mailgun . Mail ...

  5. CSS3实现全景图特效

    基本代码 html代码: <div class="panorama"></div> 首先定义一些基本的样式和动画: .panorama { width: 3 ...

  6. TS学习随笔(四)->数组的类型

    少侠们,今天我们继续来搞一搞TS 今天我们要来看一看TS中数组的定义是个什么鬼样子 数组的类型: 在 TypeScript 中,数组类型有多种定义方式,比较灵活.下面我们来看看有哪些定义方法 「类型 ...

  7. 腾讯云centos7远程连接配置

    1.申请腾讯云 注册腾讯云账号,申请一个centos7的服务器,1G内存,1核处理器,1M网速. 对于这种入门级配置,建议还是别用windows server了,不然不装任何东西,光运行系统就需要60 ...

  8. JHipster技术栈定制 - 基于UAA的微服务之间安全调用

    本文通过代码实例演示如何通过UAA实现微服务之间的安全调用. uaa: 身份认证服务,同时也作为被调用的资源服务.服务端口9999. microservice1: 调用uaa的消费者服务,服务端口80 ...

  9. selenium2 run in Jenkins GUI testing not visible or browser not open but run in background浏览器后台运行不可见

      http://wiki.hudson-ci.org/display/HUDSON/Tomcat Tomcat from Windows GUI Testing in Windows Most Wi ...

  10. django源码分析 LazySetting对象

    一.django中通过LazySetting对象来获取项目的配置,LazySetting对象有什么特性?为什么使用这个对象? LazySetting顾名思义,就是延迟获取配置内容.比如,我们定义了一个 ...