scrapy爬虫基本应用

来源:互联网 发布:星际淘宝网 编辑:程序博客网 时间:2024/05/18 04:53

这段时间,终于大概把爬虫的体系完成。现在简单记录一下爬虫的流程。 我要用的工具有python+scrapy。先安装python和scrapy,最好用pip安装,安装scrapy后还要安装它依赖的一些module。 打开cmd,转到要保存的目录然后输入命令:

scrapy startproject yourspidername 

这个时候,scrapy就创建了init,items,pipelines,settings四个基本文件,还有一个spider文件夹用来存放主要的爬虫文件。 items.py主要是定义一个存放爬取到的内容的容器。一般代码为:

import scrapy class SnakeItem(scrapy.Item):     youritem = scrapy.Field()  

settings主要进行一些参数的设定,意义不大。 pipelines是把爬取的数据存放的最重要环节,我一般配合mongodb使用,所以待会先说明一下mongodb的安装和配置再讲pipelines。 在爬虫项目里面专门有一个spider文件用来存放爬虫的主程序。一般架构为:先定义爬虫的名字name,还有首先爬取的页面start_urls,这两个变量名都不能随意命名。

import scrapy from scrapy.selector import Selector from snake.items import SnakeItem class pinSpider(scrapy.Spider):     name = "yourspidername" start_urls='url' 

然后就是定义爬虫行为.

def parse(self, response):     select=Selector(response)     next_page = select.css("#pgt > div.pg > a.nxt::attr('href')")     big=select.xpath('//*[@id="moderate"]/table/tbody') 

采用先打后小的原则,先把你感兴趣的内容块全部放入big里面。

for each in big: item=SnakeItem()    time=each.xpath("tr/td[2]/em/span/text()").extract()     if time:     item['time']=time[0] 

然后用for循环以此取出你感兴趣的内容。这里关键的是提取到的内容很多情况都是列表形式,所以为了避免出错,后面要加个[0]。 爬虫行为主要就是针对你感兴趣的内容提取xpath路径然后放入到items里面。关键点就是换页功能

url = next_page[0].extract() yield scrapy.Request(url,self.parse) 

用一个scrapy.Request函数来回调其它函数。

0 0
原创粉丝点击