Python Scrapy框架:通用爬蟲之CrawlSpider用法簡單示例
本文實(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 scrapyfrom scrapy.spiders import CrawlSpider, Rulefrom scrapy.linkextractors import LinkExtractorclass Quotes(CrawlSpider): # 爬蟲名稱 name = 'get_quotes' allow_domain = [’quotes.toscrape.com’] start_urls = [’http://quotes.toscrape.com/’]# 設(shè)定規(guī)則 rules = ( # 對(duì)于quotes內(nèi)容頁URL,調(diào)用parse_quotes處理, # 并以此規(guī)則跟進(jìn)獲取的鏈接 Rule(LinkExtractor(allow=r’/page/d+’), callback=’parse_quotes’, follow=True), # 對(duì)于author內(nèi)容頁URL,調(diào)用parse_author處理,提取數(shù)據(jù) Rule(LinkExtractor(allow=r’/author/w+’), callback=’parse_author’) )# 提取內(nèi)容頁數(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)文章:
1. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?2. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)車輛管理系統(tǒng)3. ASP.Net MVC利用NPOI導(dǎo)入導(dǎo)出Excel的示例代碼4. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算5. jstl 字符串處理函數(shù)6. JSP動(dòng)態(tài)網(wǎng)頁開發(fā)原理詳解7. .Net core Blazor+自定義日志提供器實(shí)現(xiàn)實(shí)時(shí)日志查看器的原理解析8. PHP中為什么使用file_get_contents("php://input")接收微信通知9. IOS蘋果AppStore內(nèi)購付款的服務(wù)器端php驗(yàn)證方法(使用thinkphp)10. XML CDATA是什么?
