PySpider安装与使用

Posted Code Kiznaiver

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PySpider安装与使用相关的知识,希望对你有一定的参考价值。

PySpider

Begin

安装pip install pyspider

在windows系统好像会出现如下问题

Command "python setup.py egg_info" failed with error code 10 in  

解决方法:

利用wheel安装

S1: pip install wheel
S2: 进入www.lfd.uci.edu/~gohlke/pythonlibs/,Ctrl + F查找pycurl


S3:
这个包名是pycurl-版本-你下载的python版本(如python3.4,就是cp34)-win32/64操作系统),选择你所需要的进行下载
S4: 安装编译包,命令行输入 pip install 你下载的whl文件的位置如(d:\\pycurl-7.43.1-cp34-cp34m-win_amd64.whl)
S5: 继续pip install pyspider


####Use

命令行输入pyspider all,启动pyspider(启动的时候可能一直卡在result_worker starting, 这个时候先等等, 然后再Ctrl + C关闭, 再次 pyspider all)

接着进入网站localhost:5000,出现如下页面

接着点击Create,输入项目名和你所要爬的网站

进入项目后左边是视图区,可以看很多东西;右边是代码编辑区

接着讲讲代码使用

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-01-13 10:23:04
# Project: test

from pyspider.libs.base_handler import *


class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl(\'https://scrapy.org/\', callback=self.index_page)#这句代码的意思是爬取\'https://scrapy.org/\',进入之后回调,触发self.index_page函数,这个时候response就是获取到的页面

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc(\'a[href^="http"]\').items():#这里的response.doc语法使用的是jQuery的语法,获取属性href前缀为http的a标签(这里使用的CSS选择器语法)
            self.crawl(each.attr.href, callback=self.detail_page)#接着爬取所有获取到的a标签链接,每访问一个,触发回调函数self.detail_page,这个时候的response就是访问的当前网站的html页面

    @config(priority=2)
    def detail_page(self, response):
        #这里返回一个对象
        return {
            "url": response.url,
            "title": response.doc(\'title\').text(),
        }

相关资料:
https://segmentfault.com/a/1190000002477863 这里三篇教程都很好,可以以它为实例,
http://www.pyspider.cn/book/pyspider/pyspider-Quickstart-2.html 当然还有必不可少的官方文档!

以上是关于PySpider安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

docker快速搭建分布式爬虫pyspider

pyspider爬虫框架

利用 pyspider 框架抓取猫途鹰酒店信息

python3.7与pyspider的坑

Pyspider安装使用

Pyspider安装使用