網路爬蟲之scrapy的基本實現

2021-10-05 18:03:59 字數 2111 閱讀 7768

該來的還是要來的,作為網路爬蟲,通用的requests庫、beautifulsoup庫還有常用的selenium庫是非常優秀的,他們可以幫助我們解決絕大部分問題的。對於我們個人使用而言,學會這些,基本是夠用了。但是哦,使用框架的爬蟲可以幫助我們更高效的解決問題,所以…我們今天來看下scrapy的基礎使用…

安裝scrapy庫

pip install scrapy -i建立乙個專案(這裡建立乙個通用圖書爬蟲專案)

scrapy startproject book_spider建立乙個爬蟲

scrapy genspider a69novel 69shu.com此時我們就建立了乙個完整的專案了,在這之前,先給大家看一下這個專案的目錄樹

.

├── book_spider

│ ├── __init__.py

│ ├── items.py

│ ├── middlewares.py

│ ├── pipelines.py

│ ├── settings.py

│ └── spiders

│ ├── __init__.py

│ └── a69novel.py

└── scrapy.cfg

item.py檔案

用來定義乙個容器,這裡我們定義四個字段

novel_name = scrapy.field()

novel_chapter =scrapy.field()

novel_content = scrapy.field()

_id = scrapy.field()

分別用來儲存**名、**章節、**章節內容、**章節id值

a69novel.py檔案

這是乙個爬蟲檔案,,由我們剛剛建立的爬蟲命令生成的模板檔案,這裡我們需要對他進行改寫。

到這裡其實我們已經實現了乙個簡單的爬蟲,但是我們的資料沒有儲存啊,來接下來,我們在settings.py中開啟item_pipelines,讓資料傳遞到pipelines讓我們做下一步處理,當然,在這裡大家可以自己設定user_agent啥的。

item_pipelines =
pipelines中我們做如下操作即可
from pymongo import mongoclient

import re

import json

cliect = mongoclient()

db = cliect['book_spider']

class bookspiderpipeline(object):

def process_item(self, item, spider):

if spider.name == 'a69novel':

collection = db['a69novel']

# 去除多餘字元和空字元

temp = [re.sub('\r|\n|(\xa0\xa0\xa0\xa0)', '', str(i)) for i in item['novel_content']]

t = [i for i in temp if i != '']

content = ''

for i in t[1:]:

content += i

id = re.findall('\d+', item['_id'][0])[0]

novel_chapter = re.sub('\d+\.', '', item['novel_chapter'][0])

item['_id'] = id

item['novel_content'] = content

item['novel_chapter'] = novel_chapter

collection.insert(dict(item))

print('ok')

return item

最後一步,執行爬蟲

scrapy crawl a69novel

python 網路爬蟲 之scrapy系列

網路爬蟲之scrapy系列 scrapy 網路爬蟲 之0 爬蟲與反扒 scrapy網路爬蟲 之一 scrapy框架簡介和基礎應用 scrapy網路爬蟲 之二 持久化操作 scrapy網路爬蟲 之三 遞迴解析和post請求 scrapy網路爬蟲 之四 日誌等級和請求傳參 scrapy網路爬蟲 之五 c...

網路爬蟲框架 Scrapy

網路爬蟲框架 scrapy 簡介 開源的python爬蟲框架,用於抓取web站點並從頁面中提取結構化的資料 用途廣泛,可用於資料探勘 監測和自動化測試 scrapy優點 快速強大 量簡潔便可完成爬取 易擴充套件 可新增新的功能模組 scrapy高階特性 內建資料抽取器css xpath re 互動式...

scrapy之爬蟲初體驗

本篇文章主要將怎樣建立乙個scrapy專案,以及完成第乙個scrapy爬蟲專案。首先是安裝scrapy模組,有很多原因都能導致scrapy模組安裝失敗,網上有很多教程讓怎樣安裝scrapy。親測比較有效的方法使用whl檔案安裝。不過有小夥伴也可以嘗試直接使用pip install scrapy命令進...