Python Scrapy框架:通用爬蟲之CrawlSpider用法簡(jiǎn)單示例
本文實(shí)例講述了Python Scrapy框架:通用爬蟲之CrawlSpider用法。分享給大家供大家參考,具體如下:
步驟01: 創(chuàng)建爬蟲項(xiàng)目
scrapy startproject quotes
步驟02: 創(chuàng)建爬蟲模版
scrapy genspider -t quotes quotes.toscrape.com
步驟03: 配置爬蟲文件quotes.py
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class Quotes(CrawlSpider):
# 爬蟲名稱
name = "get_quotes"
allow_domain = ['quotes.toscrape.com']
start_urls = ['http://quotes.toscrape.com/']
# 設(shè)定規(guī)則
rules = (
# 對(duì)于quotes內(nèi)容頁(yè)URL,調(diào)用parse_quotes處理,
# 并以此規(guī)則跟進(jìn)獲取的鏈接
Rule(LinkExtractor(allow=r'/page/\d+'), callback='parse_quotes', follow=True),
# 對(duì)于author內(nèi)容頁(yè)URL,調(diào)用parse_author處理,提取數(shù)據(jù)
Rule(LinkExtractor(allow=r'/author/\w+'), callback='parse_author')
)
# 提取內(nèi)容頁(yè)數(shù)據(jù)方法
def parse_quotes(self, response):
for quote in response.css(".quote"):
yield {'content': quote.css('.text::text').extract_first(),
'author': quote.css('.author::text').extract_first(),
'tags': quote.css('.tag::text').extract()
}
# 獲取作者數(shù)據(jù)方法
def parse_author(self, response):
name = response.css('.author-title::text').extract_first()
author_born_date = response.css('.author-born-date::text').extract_first()
author_bron_location = response.css('.author-born-location::text').extract_first()
author_description = response.css('.author-description::text').extract_first()
return ({'name': name,
'author_bron_date': author_born_date,
'author_bron_location': author_bron_location,
'author_description': author_description
})
步驟04: 運(yùn)行爬蟲
scrapy crawl quotes
更多相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家基于Scrapy框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python獲取網(wǎng)頁(yè)數(shù)據(jù)的五種方法
在 Python 中,爬蟲用于自動(dòng)化獲取網(wǎng)頁(yè)數(shù)據(jù),你可以使用多種方法來(lái)抓取網(wǎng)頁(yè)內(nèi)容,具體使用哪種方法取決于網(wǎng)頁(yè)的結(jié)構(gòu)、內(nèi)容類型以及你所需的精確度,以下是常見的 5 種獲取網(wǎng)頁(yè)數(shù)據(jù)的方式,需要的朋友可以參考下2025-01-01
python如何通過(guò)閉包實(shí)現(xiàn)計(jì)算器的功能
這篇文章主要介紹了python如何通過(guò)閉包實(shí)現(xiàn)計(jì)算器的功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Tensorflow 自定義loss的情況下初始化部分變量方式
今天小編就為大家分享一篇Tensorflow 自定義loss的情況下初始化部分變量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python拆分Excel工作簿或工作表為多個(gè)文件的高效方法
在日常工作中,我們經(jīng)常需要處理包含大量數(shù)據(jù)的Excel文件,為了提高效率和準(zhǔn)確性,我們可以將一個(gè)Excel文件或其中某一個(gè)工作表按需求拆分為多個(gè)文件,本文將提供以下兩個(gè)示例介紹如何通過(guò)Python高效地拆分Excel工作簿或工作表,需要的朋友可以參考下2024-12-12
解決jupyter notebook顯示不全出現(xiàn)框框或者亂碼問(wèn)題
這篇文章主要介紹了解決jupyter notebook顯示不全出現(xiàn)框框或者亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
numpy中生成隨機(jī)數(shù)的幾種常用函數(shù)(小結(jié))
這篇文章主要介紹了numpy中生成隨機(jī)數(shù)的幾種常用函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Python標(biāo)準(zhǔn)庫(kù)calendar的使用方法
本文主要介紹了Python標(biāo)準(zhǔn)庫(kù)calendar的使用方法,calendar模塊主要由Calendar類與一些模塊方法構(gòu)成,Calendar類又衍生了一些子孫類來(lái)幫助我們實(shí)現(xiàn)一些特殊的功能,感興趣的可以了解一下2021-11-11

