scrapy 爬蟲基礎

2022-05-10 17:40:37 字數 1932 閱讀 2708

scrapy是python開發的乙個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。

安裝完成後,在自定義目錄下輸入

scrapy startproject project_name //

建立新爬蟲專案

scrapy genspider -t crawl crawl_name url_addr//

建立爬蟲,模板,爬蟲名和待爬**

scrapy內建的爬蟲模板可使用:scrapy genspider -l 來查詢,查詢結果如下:包括basic crawl csvfeed xmlfeed四種型別。

使用以上命令後,便會在目錄中自動生成爬蟲專案,包含的內容如下圖:

分別代表的意義為:

scrapy.cfg:專案的配置檔案

jd_crawling/:專案的python模組,將會從這裡引用**

jd_crawling/items.py:專案的items檔案

jd_crawling/pipelines.py:專案的pipelines檔案 (pipeline意為管道,即將資料傳遞過來進行儲存或處理)

jd_crawling/settings.py:專案的設定檔案

jd_crawling/spiders/:儲存爬蟲的目錄

進入目錄中,在item中定義待爬的關鍵字(target),目的是封裝進item中,做為整個專案的乙個物件進行引用和處理

class

jdcrawlingitem(scrapy.item):

#define the fields for your item here like:

#name = scrapy.field()

goods_name = scrapy.field()#

定義商品名稱

goods_link = scrapy.field()#

定義商品鏈結

items建立完成後進入spider建立爬蟲規則:先爬,再取。可以看到在子佛那個建立的專案中已經為我們自動建立了一些內容:

class

jdurlspider(crawlspider):

name = '

jd_url'#

爬蟲的識別名稱,必須唯一

allowed_domains = ['

jd.com

'] #

允許執行的url範圍

start_urls = ['

'] #

爬取的url列表

建立匹配規則:

def parse_item(self, response): #

解析的方法,呼叫的時候傳入從每乙個url傳回的response物件作為唯一引數,負責解析並匹配抓取的資料(解析為item)

item = jdcrawlingitem() #

此處便引用了之前定義的item

item['

goods_name

'] = response.xpath("

//a[@class='pic']/@title

").extract()

item[

'goods_link

'] = response.xpath("

//a[@class='pic']/@href

").extract()

print(item['

goods_name

'])

xpath的使用方法詳見:關於scrapy網路爬蟲的xpath書寫經驗總結

最後執行:scrapy crawl jd_url  則可以開始我們的爬蟲了。

這是最基本的爬蟲,之後還會涉及到:1通過pipeline 寫進資料庫(pymsql)2突破反爬蟲限制3爬蟲資料分析和處理等內容。會在接下來的內容中完善

scrapy爬蟲基礎

生成資料夾在cmd中執行scrapy startproject doubantest 後跟資料夾名字 doubantest main.py 新建 encoding utf 8 from scrapy import cmdline cmdline.execute scrapy crawl douban...

Python爬蟲 Scrapy基礎

依照順序安裝如下依賴庫,如下 wheel pip install wheel lxml pyopenssl twisted pywin32 220 scrapy pip install scrapy 安裝成功後,通過在cmd的指定路徑下輸入 scrapy startproject hello可以在當...

爬蟲基礎4 框架Scrapy

scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。其可以應用在資料探勘,資訊處理或儲存歷史資料等一系列的程式中。其最初是為了頁面抓取 更確切來說,網路抓取 所設計的,也可以應用在獲取api所返回的資料 例如 amazon associates web services 或者通用的網路...