柚子快報(bào)邀請(qǐng)碼778899分享:Scrapy爬蟲開發(fā)實(shí)驗(yàn)
柚子快報(bào)邀請(qǐng)碼778899分享:Scrapy爬蟲開發(fā)實(shí)驗(yàn)
什么是Scrapy?
Scrapy是一個(gè)基于Python的強(qiáng)大的開源網(wǎng)絡(luò)爬蟲框架,用于從網(wǎng)站上抓取信息。它提供了廣泛的功能,使得爬取和分析數(shù)據(jù)變得相對(duì)容易。Scrapy的特點(diǎn)包括:
強(qiáng)大的數(shù)據(jù)提取工具,支持XPath和CSS選擇器。簡(jiǎn)化的HTTP請(qǐng)求和響應(yīng)處理??膳渲玫南螺d中間件,用于處理不同類型的請(qǐng)求。數(shù)據(jù)存儲(chǔ)支持,包括JSON、CSV、XML等。并發(fā)請(qǐng)求管理,提高效率。
創(chuàng)建Scrapy項(xiàng)目
要使用Scrapy來(lái)爬取網(wǎng)站,首先需要?jiǎng)?chuàng)建一個(gè)Scrapy項(xiàng)目。下面是創(chuàng)建一個(gè)名為douban_top250的Scrapy項(xiàng)目的步驟:
1.打開終端,導(dǎo)航到您想要?jiǎng)?chuàng)建項(xiàng)目的目錄,并運(yùn)行以下命令
scrapy startproject douban_top250
2.進(jìn)入項(xiàng)目目錄:
cd douban_top250
3.創(chuàng)建一個(gè)用于爬取電影信息的Spider
scrapy genspider douban_movie douban.com
現(xiàn)在,項(xiàng)目的基本結(jié)構(gòu)已經(jīng)創(chuàng)建,包括爬蟲(Spider)模板文件。
編寫Scrapy Spider
Spider是Scrapy項(xiàng)目中負(fù)責(zé)定義如何抓取信息的部分。需要編輯Spider文件,以指定要爬取的URL、如何處理響應(yīng)和如何提取數(shù)據(jù)。
import scrapy
from douban_top250.items import DoubanTop250Item
class DoubanMovieSpider(scrapy.Spider):
name = 'douban_movie' # Spider的名稱
allowed_domains = ['douban.com'] # 允許爬取的域名
start_urls = ['https://movie.douban.com/top250'] # 起始URL
def parse(self, response):
for movie in response.css('ol.grid_view li'):
item = DoubanTop250Item() # 創(chuàng)建一個(gè)DoubanTop250Item對(duì)象用于存儲(chǔ)數(shù)據(jù)
item['rank'] = movie.css('em::text').get() # 提取電影排名
item['title'] = movie.css('.title::text').get() # 提取電影標(biāo)題
item['rating'] = movie.css('.rating_num::text').get() # 提取電影評(píng)分
item['link'] = movie.css('a::attr(href)').get() # 提取電影鏈接
yield item # 返回Item以供后續(xù)處理
next_page = response.css('.next a::attr(href)').get() # 提取下一頁(yè)的鏈接
if next_page is not None:
yield response.follow(next_page, self.parse) # 繼續(xù)爬取下一頁(yè)
創(chuàng)建Item類
import scrapy
class DoubanTop250Item(scrapy.Item):
rank = scrapy.Field()
title = scrapy.Field()
rating = scrapy.Field()
link = scrapy.Field()
配置數(shù)據(jù)存儲(chǔ)
FEEDS = {
'douban_top250.json': {
'format': 'json',
'encoding': 'utf-8',
},
}
運(yùn)行Scrapy爬蟲
一旦編寫好Spider和Item類,并配置好數(shù)據(jù)存儲(chǔ)選項(xiàng),就可以運(yùn)行Scrapy爬蟲來(lái)抓取豆瓣Top 250電影數(shù)據(jù)了。運(yùn)行以下命令:
scrapy crawl douban_movie
源碼已上傳到Github:[github.com/SteamPunkMa…]
轉(zhuǎn)載大佬的文章,僅供學(xué)習(xí)使用
柚子快報(bào)邀請(qǐng)碼778899分享:Scrapy爬蟲開發(fā)實(shí)驗(yàn)
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。