前面已經介紹過如何創建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文件中,對圖片下載的路徑和存儲位置進行設置。
下面附代碼如下。僅有爬蟲文件的代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# -*- 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)<br> |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/qq_39138295/article/details/81365941