精通Scrapy網路爬蟲【一】第一個爬蟲專案
初識Scrapy
一個網路爬蟲程式的基本執行流程可以總結為以下迴圈:
1.下載頁面一個網頁的內容本質上就是一個HTML文字,爬取一個網頁內容之前,首先要根據網頁的URL下載網頁。
2.提取頁面中的資料當一個網頁(HTML)下載完成後,對頁面中的內容進行分析,並提取出我們感興趣的資料,提取到的資料可以以多種形式儲存起來,比如將資料以某種格式(CSV、JSON)寫入檔案中,或儲存到資料庫(MySQL、MongoDB)中。
3.提取頁面中的連結通常,我們想要獲取的資料並不只在一個頁面中,而是分佈在多個頁面中,這些頁面彼此聯絡,一個頁面中可能包含一個或多個到其他頁面的連結,提取完當前頁面中的資料後,還要把頁面中的某些連結也提取出來,然後對連結頁面進行爬取(迴圈1-3步驟)。
使用pip install scrapy安裝scrpay
輸入scrapy
測試是否安裝成功
編寫第一個爬蟲專案
使用scrapystartproject命令:
分析頁面
http://books.toscrape.com/
開啟開發者工具進行分析
可以看到,每一本書的資訊包裹在
<article class="product_pod">元素中:
書名資訊在其下<h3 > a元素的title屬性中,如<ahref="catalogue/a-light-in-the-attic_1000/index.html"title="ALight in the Attic">A Light in the ...</a>;
書價資訊在其下<p class="price_color">元素的文字中,如<p class="price_color">£51.77</p>。
分析next按鈕
可以發現,下一頁的URL在ul.pager > li.next > a元素的href屬性中,是一個相對URL地址,如<li class="next"><ahref="catalogue/page-2.html">next</a></li>。
編寫爬蟲
scrapy genspider book_spider http://books.toscrape.com/
建立spider
編寫
import scrapy
class BookSpiderSpider(scrapy.Spider):
name = 'book_spider'
# allowed_domains = ['http://books.toscrape.com/']
start_urls = ['http://books.toscrape.com//']
def parse(self, response):
for book in response.css('article.product_pod'):
name=book.xpath('./h3/a/@title').extract_first()
price=book.css('p.price_color::text').extract_first()
yield {
'name':name,
'price':price,
}
next_url=response.css('ul.pager li.next a::attr(href)').extract_first()
if next_url:
next_url=response.urljoin(next_url)
yield scrapy.Request(next_url,callback=self.parse)
在shell中執行scrapy crawl book_spider執行爬蟲
從上述資料可以看出,我們成功地爬取到了1000本書的書名和價格資訊(50頁,每頁20項)。
參考資料:《精通Scrapy網路爬蟲》劉碩 清華大學出版社
相關文章
- Scrapy入門-第一個爬蟲專案爬蟲
- 我的第一個 scrapy 爬蟲爬蟲
- Scrapy建立爬蟲專案爬蟲
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- 爬蟲(9) - Scrapy框架(1) | Scrapy 非同步網路爬蟲框架爬蟲框架非同步
- 使用Scrapy構建一個網路爬蟲爬蟲
- 《用Python寫網路爬蟲》--編寫第一個網路爬蟲Python爬蟲
- 網路爬蟲專案爬蟲
- 第一個分散式爬蟲專案分散式爬蟲
- 在scrapy框架下建立爬蟲專案,建立爬蟲檔案,執行爬蟲檔案框架爬蟲
- python網路爬蟲(14)使用Scrapy搭建爬蟲框架Python爬蟲框架
- 爬蟲學習之基於Scrapy的網路爬蟲爬蟲
- 爬蟲--Scrapy簡易爬蟲爬蟲
- Python3 大型網路爬蟲實戰 — 給 scrapy 爬蟲專案設定為防反爬Python爬蟲
- Python爬蟲教程-31-建立 Scrapy 爬蟲框架專案Python爬蟲框架
- Python爬蟲深造篇(四)——Scrapy爬蟲框架啟動一個真正的專案Python爬蟲框架
- 網路爬蟲專案蒐集爬蟲
- 網路爬蟲——爬蟲實戰(一)爬蟲
- scrapy爬蟲爬蟲
- 網路爬蟲:使用Scrapy框架編寫一個抓取書籍資訊的爬蟲服務爬蟲框架
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- scrapy 框架新建一個 爬蟲專案詳細步驟框架爬蟲
- scrapy + mogoDB 網站爬蟲Go網站爬蟲
- 專案--python網路爬蟲Python爬蟲
- 網路爬蟲(python專案)爬蟲Python
- scrapy入門教程()部署爬蟲專案爬蟲
- 爬蟲專案(一)爬蟲+jsoup輕鬆爬知乎爬蟲JS
- Python網路爬蟲(六) Scrapy框架Python爬蟲框架
- Scrapy 輕鬆定製網路爬蟲爬蟲
- Scrapy爬蟲-草稿爬蟲
- Scrapy爬蟲框架爬蟲框架
- 爬蟲學習之一個簡單的網路爬蟲爬蟲
- 【爬蟲】爬蟲專案推薦 / 思路爬蟲
- scraping_編寫第一個網路爬蟲API爬蟲
- scrapy通用專案和爬蟲程式碼模板爬蟲
- 利用scrapy建立初始Python爬蟲專案Python爬蟲
- Python爬蟲小專案:爬一個圖書網站Python爬蟲網站
- 網路爬蟲——Urllib模組實戰專案(含程式碼)爬取你的第一個網站爬蟲網站