Spider类是Scrapy中与爬虫相关的一个基类,所有的爬虫文件必须继承该类。
爬虫文件:爬取动作以及数据提取操作
利用gensipider命令创建一个爬虫文件
我们首先创建一个爬虫项目
scrapy startproject myfirstpjt
进入该项目中(因为genspider命令为项目内命令)
cd myfirstpjt
创建爬虫文件
scrapy genspider spider_name www.baidu.com
然后我们打开我们创建的爬虫文件spider_name.py进行修改和编写,打开文件如下:
# -*- coding: utf-8 -*-
#导入scrapy模块
import scrapy
#创建爬虫类spider_nameSpider,继承了scrapy.Spider基类
class spider_nameSpider(scrapy.Spider):
#name属性代表爬虫名称
name = "spider_name"
#allowed_domins允许爬的域名
allowed_domins = ["www.baidu,com"]
#start_urls爬行的起始地址,可定义多个地址,通过逗号隔开
start_urls = ['http://www.baidu,com/']
#parse方法:处理响应,返回处理后数据,负责链接跟进
def parse(self,response):
pass
我们可以将其修改如下:
# -*- coding: utf-8 -*-
#导入MyfirstpjtItem我们就可以使用之前定义的Items了
from myfirstpjt.items import MyfirstpjtItem
class spider_nameSpider(scrapy.Spider):
name="spider_name"
#新浪的主域名
allowed_domins=["sina.com.cn"]
#三个新浪新闻网页
start_urls=(
'http://slide.news.sina.cn/s/slide_1_103185.html',
'http://slide.mil.pews.sina.com.cn/k/slide_8_193_45192.html#p=1',
'http://news.sina.com.cn/pl/2016-09-12/doc-ixvukhv8147404.shtml',
)
def parse(self,response):
#实例化对象
item=MyfirstpjtItem()
#赋值
item["urlname"]=response.xpath("/html/head/title/text()")
print(item["urlname"])
我们也可以通过重写start_requests()方法来使用其他变量作为设置起始网址的属性。