Scrapy          

先创建项目

在windows下

scrapy startproject      myproject         #myproject是你的项目名称

cd 项目名称

scrapy genspider myspider 爬取域名   #  myspider是你的爬虫名称 后跟爬取域名

启动爬虫

scrapy crawl 爬虫名

配置

在setting.py 中配置

ROBOTSTXT_OBEY = False
 
 
CONCURRENT_REQUESTS = 32
#其中Scrapy下载执行现有的最大请求数
# 默认值:16
# 并发是指scrapy同时处理的request的数量,默认的全局并发限制为16,可增加这个值,增加多少取决于爬虫占CPU多少,设置前最好测试一下,一般占在80-90%为好
 
DOWNLOAD_DELAY = 3 #设置延迟下载可以避免被发现
 
COOKIES_ENABLED = True #禁止cookies,有些站点会从cookies中判断是否为爬虫
#它是用于Scrapy的HTTP请求的默认标题
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}

# 管道
ITEM_PIPELINES = {
'Per.pipelines.PerPipeline': 300,
}

# 日志 
LOG_FILE = './TEST.log'
# 编码
FEED_EXPORT_ENCODING='utf-8'
 

在你的myspider.py文件编写爬虫

import scrapy,re,requests
from ..items import PerItem class LishiSpider(scrapy.Spider):
name = 'myspider' #爬虫名 # allowed_domains = ['http://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=2&start=1']
start_urls = ['http://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=2&start=1'] #爬取的域名 def parse(self, response):
# 标题
title = response.xpath('/html/body/li[@class="categoryem"]/div[@class="vervideo-bd"]/a//div[@class="vervideo-title"]/text()').extract()
# 链接
t_url = response.xpath('/html/body/li[@class="categoryem"]/div[@class="vervideo-bd"]/a/@href').extract()
# 时间
data = response.xpath('/html/body/li[@class="categoryem"]/div[@class="vervideo-bd"]/a//div[@class="cm-duration"]/text()').extract()      #爬取的标题等需传到items.py里
for i in range(len(title)):
item = PerItem()
item['title'] = title[i]
item['t_url'] = 'http://www.pearvideo.com/' + t_url[i]
item['data'] = data[i] #yield item        print(item)

注意 :爬取的字段要跟   items.py里的一致

import scrapy

class PerItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
t_url = scrapy.Field()
data = scrapy.Field()
shi = scrapy.Field()

  

最后启动爬虫

scrapy crawl myspider

05-18 02:33