需求:

爬取体育×××高频游戏-北京11选5的开奖结果


实现计划:

使用Scrapy从网页上爬取


实现步骤:

1、准备一个开发测试环境,笔者使用的是:

    1)Ubuntu16.04
    2)Python 2.7.12
    3)Scrapy 1.2.0

2、创建一个scrapy工程:  

    scrapy startproject ElevenPFiveSpider


结果如下:

wKioL1glOLaTqP8HAAC9Hupm3AM232.png-wh_50

整个项目的目录结构如下(红色圈中范围,其他是后续添加的):

wKioL1glOdmDTjeJAAeJOYIOtGk057.png-wh_50

3、定义Item

Item是保存爬取到的数据的容器,笔者将需要抓取的数据结构放入到这里。其中关键字段为奖期、开奖号码(实际上,后来发现发现是没有必要的,因为笔者直接将抓取的数据存入到数据库中,建立的数据容器基本没怎么用),实现代码如下:

wKiom1glOt6jVzdBAATEa2MMdM4186.png4、编写爬虫

在spiders文件夹下创建爬取数据的类,包含了初始URL,如何跟进网页中的链接以及如何分析页面中的内容,实现代码如下:

wKiom1glVQ2BRyGFABQhWsRgtmc341.png

说明:

A、提取数据项需要使用到Selectors选择器,它使用了一种基于xpath和css表达式的机制。具体的使用方法,请参考:

    Scrapy入门教程http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

    Scrapy文档https://scrapy.org/doc/

B、爬取的网站使用了加密技术,需要进行解密操作。留心的读者可以查看它的加密机制其实特别easy,只需要建立特定的解密字典即可;

5、运行结果:

wKiom1glVkyRgKg-AAMAx9HHBr4678.png