實驗名稱:關(guān)于名人名言的數(shù)據(jù)抓取
一、實驗?zāi)康模毫私饩W(wǎng)絡(luò)數(shù)據(jù)抓取的基本流程,搭建虛擬開發(fā)環(huán)境。
二、實驗內(nèi)容:
1.搭建云服務(wù)器。
2.創(chuàng)建虛擬開發(fā)環(huán)境。
3.安裝Python。
4.安裝Scrapy。
5.創(chuàng)建數(shù)據(jù)采集項目。
6.進行數(shù)據(jù)爬取。
7.提取并存儲數(shù)據(jù)。
三、實驗過程:
1.云服務(wù)器(Ubuntu)。
網(wǎng)上查詢了解云服務(wù)器的搭建過程,比較阿里云服務(wù)器和騰訊云服務(wù)器(主要是價格比較),阿里云服務(wù)器學(xué)生有優(yōu)惠,雖然騰訊也有優(yōu)惠,但是考慮了老師用的也是阿里云,便于參考,可以避免許多錯誤,加之時間倉促,按照老師的步驟可以節(jié)省時間,我們小組就購買了阿里云服務(wù)器,得到了IP。
2.遠程連接服務(wù)器(MobaXterm/Xshell)
遠程連接服務(wù)器,我首先用的是MobaXterm,老師給了安裝包,找了教程之后直接進行安裝,但是連接上服務(wù)器之后,幾秒就會斷開,需要不斷的重連,這對于新手來說,不利于實際操作。因此,我們又選擇了Xshell進行遠程訪問服務(wù)器。如圖所示:
3.建立用戶組
4.創(chuàng)建虛擬開發(fā)環(huán)境(virtualenv venv)
5.安裝Scrapy
6.創(chuàng)建數(shù)據(jù)采集項目(nini)
7.定義Spider:
import scrapy
class QuotesSpider(scrapy.Spider):
name="glfspider"
def start_requests(self):
urls=[
'http://quotes.toscrape.com/page/1',
'http://quotes.toscrape.com/page/2',
]
for url in urls:
yield scrapy.Request(url=url,callback=self.parse)
def parse(self,response):
page=response.url.split("/")[-2]
filename='glfspider-%s.html'%page
with open(filename,'wb') as f:
f.write(response.body)
self.log('Saved file %s'%filename)
8.執(zhí)行爬蟲
9.存儲數(shù)據(jù):
import scrapy
class QuotesSpider(scrapy.Spider):
name="nini"
start_urls=[
'http://quotes.toscrape.com/page/1',
]
def parse(self,response):
for quote in response.css('div.quote'):
yield{
'text':quote.css('span.text::text').extract_first(),
'author':quote.css('small.author::text').extract_first(),
'tags':quote.css('div.tags a.tag::text').extract(),
}
next_page=response.css('li.next a::attr(href)').extract_first()
if next_page is not None:
next_page=response.urljoin(next_page)
yield scrapy.Request(next_page,callback=self.parse)
10.json數(shù)據(jù)文件轉(zhuǎn)成xml文件
json數(shù)據(jù)文件轉(zhuǎn)成xml文件,我直接用在線轉(zhuǎn)換工具。
四、總結(jié)
在學(xué)習的過程中,了解了一些基礎(chǔ)的知識:云服務(wù)器,Python,Scrapy,Xshell。但是談不上掌握了這些知識,研究的還不夠清楚,許多問題是在同學(xué)或者百度的幫助下解決的。寫代碼的時候一定要細心,注意縮進,我第一次采集數(shù)據(jù)的時候只有一條,檢查了很久才發(fā)現(xiàn)少打了一個括號。其次,發(fā)現(xiàn)自己對相關(guān)知識了解太少,技術(shù)薄弱,應(yīng)該多關(guān)注一下學(xué)術(shù)前沿的知識。
相關(guān)鏈接:
Scrapy入門教程: http://www.cnblogs.com/txw1958/archive/2012/07/16/scrapy-tutorial.html
Ubuntu通用基礎(chǔ)教程:http://blog.csdn.net/top_worker/article/details/45918399
Python爬蟲入門教程:http://blog.csdn.net/column/details/why-bug.html