开发者社区> pythonstock> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PySpider python 爬虫

简介: 1,关于PySpider工具 http://www.oschina.net/p/pyspider 使用 Python 编写脚本,提供强大的 API Python 2&3 强大的 WebUI 和脚本编辑器、任务监控和项目管理和结果查看 支持 JavaScript 页面 后端系统支持:MySQL, MongoDB, SQLite, Postgresql 支
+关注继续查看

1,关于PySpider工具


http://www.oschina.net/p/pyspider
使用 Python 编写脚本,提供强大的 API
Python 2&3
强大的 WebUI 和脚本编辑器、任务监控和项目管理和结果查看
支持 JavaScript 页面
后端系统支持:MySQL, MongoDB, SQLite, Postgresql
支持任务优先级、重试、定期抓取等
分布式架构

2,Mac下安装


sudo pip install pyspider
#启动直接输入
pyspider

在本机开了5000端口:http://localhost:5000
本机访问页面:

创建一个项目,我要爬自己的csdn博客。

进入编辑页面,可以在web端直接修改代码。保存,然后运行。

和python一样,并且可以进行print打印日志,也直接输出到页面上了。

做的好神奇,是个很精简的ide开发工具了,同时还有语法高亮显示。

返回doc对象,可以将访问html里面的对象内容。
类似于jquery语法,可以按照id,class 查找链接。
比如我要查找底部的分页链接直接写
response.doc(‘.pagelist a[href]’).items() 就可以获得items数据。然后在进行循环。
更多的html css 选择器参考:
http://docs.pyspider.org/en/latest/tutorial/HTML-and-CSS-Selector/

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2016-06-03 13:28:13
# Project: csdntest

from pyspider.libs.base_handler import *

class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://blog.csdn.net/freewebsys/article/list/1', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('a[href]').items():
            href_tmp = str(each.attr.href)
            if href_tmp.find('article')>0 :
                print(href_tmp)
            self.crawl(each.attr.href, callback=self.detail_page)
        for each in response.doc('.pagelist a[href]').items():
            print(each.attr.href)
            #循环调用。
            self.crawl(each.attr.href, callback=self.index_page)

    @config(priority=2)
    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }

首先入口是on_start函数,执行完成之后调回调函数index_page ,
在回调函数里面查找a链接,再继续往下爬数据。

3,主要api函数


http://docs.pyspider.org/en/latest/apis/
主要是分析 Response 这个类的返回结果,然后再进行抓取数据。
剩下的就是写python代码的问题了。

4,总结


PySpider 是非常好用的工具,使用python非常喜欢,简单高效。
而去有个web大图形界面显示,可以直接在浏览器里面编写,调试代码。
最厉害大地方就是工具可以抓取js渲染后的代码,比如百度搜索的结果,ajax渲染后的结果。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51582451 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python爬虫:scrapy中间件及一些参数
Python爬虫:scrapy中间件及一些参数
15 0
Python爬虫:python2使用scrapy输出unicode乱码
Python爬虫:python2使用scrapy输出unicode乱码
17 0
Python爬虫:scrapy管理服务器返回的cookie
Python爬虫:scrapy管理服务器返回的cookie
14 0
Python爬虫:scrapy辅助功能实用函数
Python爬虫:scrapy辅助功能实用函数
15 0
Python爬虫:Scrapy的Crawler对象及扩展Extensions和信号Signa
Python爬虫:Scrapy的Crawler对象及扩展Extensions和信号Signa
20 0
Python爬虫:Scrapy优化参数设置
Python爬虫:Scrapy优化参数设置
23 0
Python爬虫之scrapy从入门到忘记
一、初窥scrapy scrapy中文文档 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
830 0
python爬虫之微打赏(scrapy版)
上次写到单线程的微打赏爬虫,知道微打赏需要用post请求,那今天看看如何用scrapy完成post请求。 创建项目 打开cmd,输入以下代码即可创建scrapy项目。
779 0
+关注
pythonstock
数据库算法相关专家
393
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载