scrapy是乙個高階的python爬蟲框架,它不僅包含了爬蟲的特性,還可以方便的將爬蟲資料儲存到csv、json等檔案中。
首先我們安裝scrapy。
其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 也可以應用在獲取api所返回的資料(例如 amazon associates web services ) 或者通用的網路爬蟲。scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。
pip3 install scrapy#安裝wheel模組之後才能安裝.whl檔案
pip3 install wheel
#安裝twisted
pip install twisted‑18.4.0‑cp36‑cp36m‑win_amd64.whl
pip3 install pywin32
#安裝scrapy
pip3 install scrapy
格式:scrapy startproject 專案名
scrapy startproject spider建立專案之後就會生成乙個目錄,如下:
專案名稱/格式:cd 專案名- spiders # 爬蟲檔案
- chouti.py
- cnblgos.py
....
- items.py # 持久化
- pipelines # 持久化
- middlewares.py # 中介軟體
- settings.py # 配置檔案(爬蟲)
scrapy.cfg # 配置檔案(部署)
scrapy genspider 爬蟲名 將要爬的**
cd spider建立完爬蟲之後會在spiders資料夾裡生成乙個檔案scrapy genspider chouti chouti.com
開啟chouti.py之後如下:
scrapy crawl choutiscrapy crawl chouti --nolog # 不列印日誌
# -*- coding: utf-8 -*-import scrapy
class choutispider(scrapy.spider):
'''爬去抽屜網的帖子資訊
'''name = 'chouti'
allowed_domains = ['chouti.com']
start_urls = ['']
def parse(self, response):
# 獲取帖子列表的父級div
content_div = response.xpath('//div[@id="content-list"]')
# 獲取帖子item的列表
items_list = content_div.xpath('.//div[@class="item"]')
# 開啟乙個檔案控制代碼,目的是為了將獲取的東西寫入檔案
with open('articles.log','a+',encoding='utf-8') as f:
# 迴圈item_list
for item in items_list:
# 獲取每個item的第乙個a標籤的文字和url鏈結
text = item.xpath('.//a/text()').extract_first()
href = item.xpath('.//a/@href').extract_first()
# print(href, text.strip())
# print('-'*100)
f.write(href+'\n')
f.write(text.strip()+'\n')
f.write('-'*100+'\n')
# 獲取分頁的頁碼,然後讓程式迴圈爬去每個鏈結
# 頁碼標籤物件列表
page_list = response.xpath('//div[@id="dig_lcpage"]')
# 迴圈列表
for page in page_list:
# 獲取每個標籤下的a標籤的url,即每頁的鏈結
page_a_url = page.xpath('.//a/@href').extract()
# 將網域名稱和url拼接起來
page_url = '' + page_a_url
# 重要的一步!!!!
# 匯入request模組,然後例項化乙個request物件,然後yield它
# 就會自動執行request物件的callback方法,爬去的是url引數中的鏈結
網路爬蟲框架 Scrapy
網路爬蟲框架 scrapy 簡介 開源的python爬蟲框架,用於抓取web站點並從頁面中提取結構化的資料 用途廣泛,可用於資料探勘 監測和自動化測試 scrapy優點 快速強大 量簡潔便可完成爬取 易擴充套件 可新增新的功能模組 scrapy高階特性 內建資料抽取器css xpath re 互動式...
爬蟲基礎4 框架Scrapy
scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了頁面抓取 更確切來說,網路抓取 所設計的,也可以應用在獲取api所返回的資料 例如 amazon associates web services 或者通用的網路...
scrapy爬蟲框架
作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...