PySpider python 爬虫

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

时间: 2024-11-02 15:50:27

PySpider python 爬虫的相关文章

Python 爬虫程序 PySpider

问题描述 PySipder 是一个 Python 爬虫程序演示地址:**://demo.pyspider.org/使用 Python 编写脚本,提供强大的 APIPython 2&3强大的 WebUI 和脚本编辑器.任务监控和项目**和结果查看支持 JavaScript 页面后端系统支持:MySQL, MongoDB, SQLite, Postgresql支持任务优先级.重试.定期抓取等分布式架构示例代码:from pyspider.libs.base_handler import * cl**

python 爬虫教程

转载http://blog.csdn.net/freeking101/article/details/62893343 爬虫入门初级篇 IDE 选择 PyCharm(推荐).SublimeText3.VS2015.wingIDE 装python2还是python3 python社区需要很多年才能将现有的模块移植到支持python3. django web.py flask等还不支持python3.所以推荐安装python2 最新版. Windows 平台 从 http://python.org/

Python爬虫实战

引言 网络爬虫是抓取互联网信息的利器,成熟的开源爬虫框架主要集中于两种语言Java和Python.主流的开源爬虫框架包括: 1.分布式爬虫框架:Nutch 2.Java单机爬虫框架:Crawler4j, WebMagic, WebCollector.Heritrix 3.python单机爬虫框架:scrapy.pyspider Nutch是专为搜索引擎设计的的分布式开源框架,上手难度高,开发复杂,基本无法满足快速开发的需要. Java单机类爬虫框架普遍容易上手,最大的优势是在Java技术的生态圈

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

        最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态生成的信息页面,如Ajax.JavaScript等就需要通过"Phantomjs + CasperJS + Selenium"来实现了.所以先从安装和功能介绍入门,后面在介绍一些Python相关的爬虫应用. 一. 介绍        PhantomJS        Pha

Python爬虫学习系列教程

Python版本:2.7 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库的高级用法 5. Python爬虫入门五之URLError异常处理 6. Python爬虫入门六之Cookie的使用 7. Python爬虫入门七之正则表达式 二.爬虫实战 1. Python爬虫实战一之爬取糗事百科段子 2. Python爬虫实战二之爬取百度贴吧帖子 3. Py

python 爬虫 怎么获取标签中的注释?我用得lxml解析html

问题描述 python 爬虫 怎么获取标签中的注释?我用得lxml解析html <span>当前第9127页 <!--共136904条-->  </span> 怎么才能获取注释里的值呢? tree=etree.HTML(page) pagenumber=tree.xpath(xpathStr) for i in pagenumber: totalpage=filter(str.isdigit,str(i)) 解决方案 注释不属于xml格式了,你拿到span节点后获取它的

[Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

        最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下笔记.方便以后查阅和大家学习.        中文编码问题的处理核心都是--保证所有的编码方式一致即可,包括编译器.数据库.浏览器编码方式等,而Python通常的处理流程是将unicode作为中间转换码进行过渡.先将待处理字符串用unicode函数以正确的编码转换为Unicode码,

python爬虫抓不到网页

问题描述 python爬虫抓不到网页 抓取的时候总会出现这样的错误,IOError: [Errno socket error] [Errno 10060],求告知怎么才能解决啊. 解决方案 先在第一页捉取网页链接,存放在数据库,然后一个个从数据库读取来打开下一个网页. 解决方案二: 网络超时等错误,看上去是网络请求有问题了 或者被网站ban了 解决方案三: 造成10060(网络超时)的原因: 1.请求过于频繁,被服务器认为DDOS攻击而拒绝响应. 2.网络状态不好. 3.系统繁忙处理不过来(主要

[Python爬虫] scrapy爬虫系列 &amp;lt;一&amp;gt;.安装及入门介绍

        前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更为广泛使用的Python爬虫框架是--Scrapy爬虫.这是一篇在Windows系统下介绍 Scrapy爬虫安装及入门介绍的相关文章.         官方 Scrapy  :http://scrapy.org/         官方英文文档:http://doc.scrapy.or