zoukankan      html  css  js  c++  java
  • pyspider爬虫框架webui简介-爬取阿里招聘信息

    命令行输入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的信息,及控制台提示信息、报错信息等。

  • 相关阅读:
    jQuery+ajax实现文件上传
    Jquery异步上传文件
    jQuery插件综合应用(三)发布文章页面
    jQuery插件综合应用(二)文字为主的页面
    网站开发常用jQuery插件总结(13)定位插件scrollto
    网站开发常用jQuery插件总结(12)固定元素插件scrolltofixed
    网站开发常用jQuery插件总结(11)折叠插件Akordeon
    网站开发常用jQuery插件总结(十)菜单插件superfish
    网站开发常用jQuery插件总结(九)侧边栏插件pageslide
    网站开发常用jQuery插件总结(八)标签编辑插件Tagit
  • 原文地址:https://www.cnblogs.com/wisir/p/10637737.html
Copyright © 2011-2022 走看看