精通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入門-第一個爬蟲專案爬蟲
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- 我的第一個 scrapy 爬蟲爬蟲
- 爬蟲(9) - Scrapy框架(1) | Scrapy 非同步網路爬蟲框架爬蟲框架非同步
- python網路爬蟲(14)使用Scrapy搭建爬蟲框架Python爬蟲框架
- 網路爬蟲專案爬蟲
- 第一個分散式爬蟲專案分散式爬蟲
- Python爬蟲教程-31-建立 Scrapy 爬蟲框架專案Python爬蟲框架
- Python爬蟲深造篇(四)——Scrapy爬蟲框架啟動一個真正的專案Python爬蟲框架
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- 爬蟲--Scrapy簡易爬蟲爬蟲
- 專案--python網路爬蟲Python爬蟲
- 網路爬蟲(python專案)爬蟲Python
- 網路爬蟲——爬蟲實戰(一)爬蟲
- scrapy 框架新建一個 爬蟲專案詳細步驟框架爬蟲
- scrapy入門教程()部署爬蟲專案爬蟲
- 利用scrapy建立初始Python爬蟲專案Python爬蟲
- scrapy + mogoDB 網站爬蟲Go網站爬蟲
- Python網路爬蟲4 - scrapy入門Python爬蟲
- Python爬蟲小專案:爬一個圖書網站Python爬蟲網站
- Scrapy爬蟲框架爬蟲框架
- Scrapy爬蟲-草稿爬蟲
- Python爬蟲教程-32-Scrapy 爬蟲框架專案 Settings.py 介紹Python爬蟲框架
- 【爬蟲】爬蟲專案推薦 / 思路爬蟲
- python網路爬蟲_Python爬蟲:30個小時搞定Python網路爬蟲視訊教程Python爬蟲
- scrapy通用專案和爬蟲程式碼模板爬蟲
- 網路爬蟲——Urllib模組實戰專案(含程式碼)爬取你的第一個網站爬蟲網站
- 精通 Python 網路爬蟲:核心技術、框架與專案實戰Python爬蟲框架
- 爬蟲專案爬蟲
- 網路爬蟲專案開發日誌(三):爬蟲上線準備爬蟲
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- 網路爬蟲爬蟲
- Python爬蟲—Scrapy框架Python爬蟲框架
- 【Python篇】scrapy爬蟲Python爬蟲
- python爬蟲Scrapy框架Python爬蟲框架
- scrapy爬蟲代理池爬蟲
- 爬蟲實戰scrapy爬蟲
- Python網路爬蟲實戰小專案Python爬蟲