scrapy 使用的基本流程和例子
前面已經介紹過如何建立scrapy的專案,和對專案中的檔案功能的基本介紹。
這次,就來談談使用的基本流程。
(1)首先第一點,開啟終端,找到自己想要把scrapy工程建立的路徑。這裡,我是建立在桌面上的。開啟終端,輸入:
cd Desktop 就進入了桌面檔案儲存位置。
(2)建立scrapy工程。終端輸入:scrapy startproject image
終端輸入:cd image
繼續輸入:scrapy genspider imageSpider pic.netbian.com
(3)在pycharm中開啟剛才桌面的檔案,進入settings.py設定爬蟲規則。可以將規則直接註釋掉,或者改為False。
(4) 回到爬蟲檔案。
更改start_url,將爬蟲預設的第一個網址更改為需要爬取的網站網址即可。
(5)下面就可以爬取資料了,這裡選擇了下載圖片。
爬取完資料之後,要在儲存資料的items.py檔案中傳輸給管道
接下來在爬蟲檔案中引入管道模型。
from ..items import ImageItem
在爬蟲檔案中的parse函式中使用在items.py檔案中建立的資料模型。
item = ImageItem()
注意點:
有時候在終端輸出的時候,如果返回內容是scrapy.selector ,如果物件型別是scrapy.selector,那麼這個物件可以被繼續迭代,也可以用xpath繼續尋找裡面的內容。
如果終端遇到這個問題:
# ValueError:Missing scheme in request url:h
那麼就需要使用extract()將xpath物件轉化成列表物件。而列表物件,可以繼續被迭代,但是不可以使用xpath來尋找裡面的物件。
在下載之前還需要在settings.py檔案中,對圖片下載的路徑和儲存位置進行設定。
下面附程式碼如下。僅有爬蟲檔案的程式碼:
# -*- coding: utf-8 -*-
import scrapy
from ..items import ImageItem
class ImagespiderSpider(scrapy.Spider):
name = 'imageSpider'
allowed_domains = ['pic.netbian.com']
start_urls = ['http://pic.netbian.com/4kmeinv/']
def parse(self, response):
img_list = response.xpath('//ul[@class="clearfix"]/li/a/img/@src')
# 找到了很多src屬性值,現在進行遍歷,分別使用每一個
for img in img_list:
# 使用在items.py中建立的資料模型item
item = ImageItem()
print('--------------------')
img = img.extract()
# 拼接圖片的url,得到完整的下載地址
src = 'http://pic.netbian.com' +img
# 將得到的資料放入到模型中
# 因為是下載地址,所以要用列表包起來,否則會報錯。
item['src'] = [src]
yield item
next_url = response.xpath('//div[@class="page"]/a[text()="下一頁"]/@href').extract()
print('*****************************************************************')
if len(next_url)!=0:
url = 'http://pic.netbian.com'+next_url[0]
# 將url傳給scrapy.Request 得到的結果繼續用self.parse進行處理
yield scrapy.Request(url=url,callback=self.parse)
希望對大家有所幫助。
相關文章
- ExoPlayer基本使用和關鍵類流程
- django框架使用基本流程Django框架
- scrapy工作流程和每個模組的具體作用
- scrapy基本原理
- Scrapy框架的使用之Scrapy入門框架
- 事物的基本流程
- Scrapy框架的使用之Scrapy通用爬蟲框架爬蟲
- Scrapy框架的使用之Scrapy對接Splash框架
- Scrapy框架的使用之Scrapy框架介紹框架
- scrapy使用
- Scrapy框架的使用之Scrapy爬取新浪微博框架
- oracle expdp和impdp使用例子Oracle
- 爬蟲學習筆記3(Scrapy安裝及基本使用)爬蟲筆記
- Laravel MVC的基本流程LaravelMVC
- Scrapy框架的使用之Scrapyrt的使用框架
- WebService的概念和基本使用Web
- NGINX的配置和基本使用Nginx
- Django基本流程Django
- 爬蟲框架-scrapy的使用爬蟲框架
- Scrapy爬蟲框架的使用爬蟲框架
- Scrapy Kafka的連線使用Kafka
- Django框架簡介和建立django專案的基本流程Django框架
- 企業建站的基本流程
- GoldenGate的基本配置流程Go
- at new 的使用例子
- Scrapy原始碼閱讀分析_1_整體框架和流程介紹原始碼框架
- Scrapy定向爬蟲教程(一)——建立執行專案和基本介紹爬蟲
- webpack的安裝和基本使用Web
- 反射的概念 和基本使用(一)反射
- 請求基本流程
- Flutter中的自定義View的基本流程和相關知識FlutterView
- 阿里雲建站的基本流程阿里
- WEB程式執行的基本流程Web
- 網路搭建的基本流程包括
- Docker原理和基本使用Docker
- python爬蟲系列(三)scrapy基本概念Python爬蟲
- cqrs-node框架的實際例子的開發流程框架
- 最好用的流程編輯器bpmn-js系列之基本使用JS