pyspider all 只启动了_Python 爬虫:Pyspider 安装与测试

一次性付费进群,长期免费索取教程,没有付费教程。

进微信群回复公众号:微信群;QQ群:460500587

 教程列表  见微信公众号底部菜单 |   本文底部有推荐书籍 

6b2d5786efca4fbd71b8aa1b0a179225.png

微信公众号:计算机与网络安全

ID:Computer-network

Pyspider爬虫框架是一个由国人设计开发的Python 爬虫 框架。与其他爬虫框架不同的是Pyspider不需要任何编辑器或者IDE的支持。它直接在Web界面,以浏览器来编写调试程序脚本。在浏览器上运行、起停、监控执行状态、查看活动历史、获取结果。Pyspider支持MySQL(MariaDB)、MongoDB、SQLite等主流数据库,支持对JavaScript的页面抓取(也是靠的PhantomJS的支持),重要的是它还支持分布式爬虫的部署,是一款功能非常强大的爬虫框架。Pyspider上手比较简单,但想深入了解也是要花点工夫的。 基于Pyspider纯正的Python血统,安装Pyspider最简单的方法是用pip。如果需要最新版本的Pyspider可以到官网下载最新版本安装,或者用git来安装。 1、Windows下安装Pyspider 在Windows中安装Pyspider采用比较简单的pip安装,进入桌面后,单击左下角的开始按钮,在弹出菜单中单击“运行”,打开cmd.exe,执行命令: pip install pyspider 一定要先配置好pip的源,否则安装会慢得令人难以接受。 执行结果如图1所示。

ad52baa046f4d14ea444287e69d728b8.png

图1  pip安装Pyspider Pyspider已经安装完毕了。这里要注意的是,Pyspider默认是需要PhantomJS支持的。如果没有安装PhantomJS,那么在运行过程中可能会出现警告信息。 Pyspider对Windows的支持不是非常好。如果条件允许,尽量避免在Windows下使用Pyspider框架。官方网站也对此做了说明。 2、Linux下安装Pyspider 在Linux下安装Pyspider可能会出现依赖性的问题。这里采用最安全的方法,使用Anaconda创建虚拟环境Python 3后,在虚拟环境下安装Pyspider,这样可以完美地解决依赖性的问题。执行命令: su cd /usr/local/ git clone https://github.com/binux/pyspider.get ls cd pyspider python setup.py install 执行结果如图2所示。

e4b428dfdaa93d720bc417d1b267b583.png

图2  git安装Pyspider Pyspider已经安装完毕。测试一下,执行命令: exit cd pyspider all 执行结果如图3所示。

8feeef66874127c9b5b21363c0565d57.png

图3  启动Pyspider 如果没有安装PhantomJS,需要先安装PhantomJS。这个接口(Pyspider控制台)既可以本地访问,也可以远程访问。在浏览器中打开网址http://127.0.0.1:5000(或者在远程 主机 上打开http://IP:5000),如图4所示。

e63f1ea6a3ec002dde81245c44e38f4a.png

图4  Pyspider WebUI 现在可以正常使用Pyspider了。 3、选择器pyquery测试 在Pyspider爬虫中继续使用CSS和XPath也是可以的。但Pyspider框架自备了pyquery选择器(在安装Pyspider时pyquery会自动安装),并在框架中为pyquery准备了提示接口。pyquery选择器与CSS和XPath一样强大,同样支持嵌套定位。在Pyspider框架中不妨试用一下pyquery,至于最终选择哪一个选择器,视个人习惯而定。 pyquery选择器不仅仅可以选择过滤有效信息,还可以修改原文中的标签属性,但在爬虫中只需要选择过滤这一功能就足够了。pyquery选择定位非常简单,最常用的是通过标签配合标签属性和属性值定位(一般来说通过标签定位就足够了),偶尔也有直接通过标签属性或者标签属性值定位的。 写一个简单的网页song.html做测试,song.html的代码如下:

1

2     song

3

4     

Adele Music

5     

6         Someone like you

7         Hello

8         Rolling in the deep

9         Set fire to the rain

10     

11

12

在浏览器中打开该页面并显示源代码,如图5所示。

2ed130b73a9f7ac01788b2c2abd52b9c.png

图5  示例文件song.html pyquery中的定位与CSS有些类似,使用pyquery初始化对象后,直接在对象内对标签名进行定位(正常主流的定位方法)。如果只需要标签内的文字,使用pyquery定位后使用text()函数解析出来即可,在示例文件的当前目录下打开终端(或者打开终端后再进入示例文件的当前目录),进入python,执行命令: from pyquery import PyQuery doc=PyQuery(filename='song.html') print doc print doc('title').text() print doc('h1').text() print doc('li[album="25"]').text() 执行结果如图6所示。

9567cb11e17887f4152103f92bfb7ca2.png

图6  pyquery定位后获取正文 有时爬虫所需的信息是隐藏在标签属性值中的,这时就需要attr函数了,继续在终端中执行命令: print doc('h1').attr.id print doc('li[album="21"]').attr.album subTags=doc('li[album="21"]').items() for subTag in subTags: print subTag.attr.album 执行结果如图7所示。

529c529ce3623c97eb5bbf969d3822c4.png

图7  pyquery定位后获取属性值 在定位时如果有多个标签符合条件,默认情况下只会选取第一个符合条件的标签。 对于爬虫而言,掌握了定位、获取正文和获取属性值基本就足够用了。 虽然pyquery还有很大的潜力可挖,但对网络爬虫没有什么意义。 如需继续深究,请参考pyquery的官网或者Wiki。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值