crawlspider爬蟲 定義url規則

2022-03-01 13:08:48 字數 2208 閱讀 5227

spider爬蟲,適合meta傳參的爬蟲(列表頁,詳情頁都有資料要爬取的時候)

crawlspider爬蟲,適合不用meta傳參的爬蟲

scrapy genspider -t crawl it it.com

# -*- coding: utf-8 -*-

import scrapy

from scrapy.linkextractors import linkextractor

from scrapy.spiders import crawlspider, rule

from sun.items import sunitem

class dongguanspider(crawlspider):

name = 'dongguan'

# 修改允許的域

allowed_domains = ['sun0769.com']

# 修改起始的url

start_urls = ['']

rules = (

# 構建列表url的提取規則

rule(linkextractor(allow=r'questiontype'), follow=true),

# 構建詳情頁面url提取規則

# 'html/question/201711/352271.shtml'

rule(linkextractor(allow=r'html/question/\d+/\d+.shtml'), callback='parse_item'),

)def parse_item(self, response):

# print (response.url,'--------')

# 構建item例項

item = sunitem()

# 抽取資料,將資料存放到item中

item['number'] = response.xpath('/html/body/div[6]/div/div[1]/div[1]/strong/text()').extract()[0].split(':')[-1].strip()

item['title'] = response.xpath('/html/body/div[6]/div/div[1]/div[1]/strong/text()').extract()[0].split(':')[-1].split(' ')[0]

item['link'] = response.url

data = ''.join(response.xpath('//div[@class="c1 text14_2"]/text()|//div[@class="contentext"]/text()').extract())

item['content'] = data.replace('\xa0','')

# print(item)

# 返回資料

鏈結提取器的使用

scrapy shell

>>> from scrapy.linkextractors import linkextractor

>>> le = linkextractor(allow=('position_detail.php\?id=\d+&keywords=&tid=0&lid=0'))

或者直接 le = linkextractor(allow=('position_detail.php'))   也可以

CrawlSpider深度爬取

crawlspider 一種基於scrapy進行全站資料爬取的一種新的技術手段。crawlspider就是spider的乙個子類 連線提取器 linkextractor 規則解析器 rule 使用流程 新建乙個工程 cd 工程中 新建乙個爬蟲檔案 scrapy genspider t crawl s...

scrapy的CrawlSpider類簡介

概述 crawlspider新增屬性和方法 rules屬性 爬取規則屬性,包含乙個或多個rule物件的元組 每個rule對爬取 的動作做出定義,crawlspider讀取rules的每個rule並進行解析 rule定義和引數 rule定義和引數 常見引數 link extractor,也叫做鏈結提取...

CrawlSpider實現的全站資料的爬取

規則解析器rule follow true 將連線提取器 繼續作用到 連線提取器提取到的連線 所對應的 頁面原始碼中 為什麼scrapy不可以實現分布式 scrapy reids元件的作用是什麼 提供可以被共享的管道和排程器 分布式的實現流程 修改爬蟲檔案 修改settings配置檔案 修改redi...