Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫
安裝
安裝Scrapy非常簡單,只需要在終端輸入pip install scrapy,然后執(zhí)行命令即可,如果不行,那么一般是底層庫的問題,可以使用codna install --upgrade scrapy代替之前的命令,雖然anconda的庫更新要慢一些,不過一般沒什么問題
創(chuàng)建項目
請在命令行下scrapy startproject name即可,示例如下,當(dāng)我們使用命令之后,scrapy就會幫我們創(chuàng)建相應(yīng)的項目:
這時候我們可以tree一下,查看我們的目錄結(jié)構(gòu),其中的spider文件夾,就是我們編寫我們自己的腳本的地方
Scrapy 框架除了基本的Response,request,Downloader,等之外,其強(qiáng)大之處就是幫助我們實現(xiàn)了幾乎整個流程,在最基本的情況下,我們甚至只需要編寫十幾行代碼就可以完成一個爬蟲.
比如其中的item文件中編寫的是對數(shù)據(jù)封裝的方法
其中的pipline.py 是用來編寫數(shù)據(jù)處理的方法的,在Spider中的我們自己編寫的spider執(zhí)行之后,我們就可以調(diào)用item中的方法對獲取的數(shù)據(jù)進(jìn)行處理,
而setting則是配置文件,除此之外我們還可以使用Scrapy提供給我們的很多已經(jīng)寫好的方法,或者重寫他們來實現(xiàn)一些我們需要的功能,而這一切又都是非常簡單的.
我們這里再從github上Scrapy 的項目中下載一個demo,或者也可以從我的這個地址下載相應(yīng)的內(nèi)容,之后我的這個系列的代碼都會放在這個地址
我們tree一下子這個文檔,就可以查看到相應(yīng)的內(nèi)容,示例如下:
下面是其中的示例代碼:
# -*- coding: utf-8 -*- import scrapyclass BooksSpider(scrapy.Spider):# 首先要繼承原來額Spider方法name = "books"# 然后是name ,用于在終端中執(zhí)行該腳本# allowed_domains = ["books.toscrape.com"]# start_urls = ['http://books.toscrape.com/',]# 我們需要一個start urldef parse(self, response):for book_url in response.css("article.product_pod > h3 > a ::attr(href)").extract():yield scrapy.Request(response.urljoin(book_url), callback=self.parse_book_page)# 然后是獲取相應(yīng)內(nèi)容,并創(chuàng)建解析函數(shù)next_page = response.css("li.next > a ::attr(href)").extract_first()if next_page:yield scrapy.Request(response.urljoin(next_page), callback=self.parse)# 關(guān)鍵之處之一,找到下一個鏈接def parse_book_page(self, response):# 解析函數(shù),我們在Scrapy中使用,Selector與xpath選擇器,css選擇器與一些其他Python代碼實現(xiàn)該功能item = {}product = response.css("div.product_main")item["title"] = product.css("h1 ::text").extract_first()item['category'] = response.xpath("//ul[@class='breadcrumb']/li[@class='active']/preceding-sibling::li[1]/a/text()").extract_first()item['description'] = response.xpath("//div[@id='product_description']/following-sibling::p/text()").extract_first()item['price'] = response.css('p.price_color ::text').extract_first()yield item至于,這份代碼的詳細(xì)解釋,我會在之后的內(nèi)容中給出,當(dāng)然這份簡單的demo是不能幫助我們真正的入門的,我們還需要一些其他內(nèi)容,之后我會寫更多的demo.
執(zhí)行
scrapy crawl name -o xxxxx.csv,這時候我們可以在剛剛的tree的路徑下,繼續(xù)執(zhí)行爬蟲的命令,效果如圖:
圖片上面是執(zhí)行完畢后的留下的日志,而下面則是我們剛剛執(zhí)行的命令.
現(xiàn)在我們就可以看看我們獲取的信息到底是不是我們的start_url了:
看來沒什么問題
提供參考
總結(jié)
以上是生活随笔為你收集整理的Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速认识网络爬虫与Scrapy网络爬虫框
- 下一篇: 深入浅出统计学 第一章 数据的可视化