在上一篇文章當中學記給大家展示了 Scrapy 爬蟲框架在爬取之前的
框架文件該如何設置。在上一篇文章當中,是直接以代碼的形式進行描述的,在這篇文章當中學記會解釋一下上一篇文章當中爬蟲代碼當中的一些名詞的用法。在Scrapy爬蟲框架中,所有自定義的爬蟲都是從這個scrapy.spiders.Spider父類繼承下來的,也就是說在這個爬蟲框架當中,所有的爬蟲代碼所適用的的屬性和方法都是由此父類規定的。
在這個父類中規定的各個名詞的用法如下:
1.name:言簡意賅,就是爬蟲的名字。
2.
allowed_domains:允許爬取的域名,不在此範圍的鏈接不會被跟進爬取。3.start_urls:起始URL列表,一般會從這個列表開始爬取。
4.custom_settings:用來存放爬蟲專屬配置的字典,這裡的設置會覆蓋全局的設置。
5.crawler:與爬蟲對應的Crawler對象,利用它可以獲取項目的配置信息,如調用crawler.settings.get()。
6.settings:用來獲取爬蟲全局設置的變量。
7.start_requests():用於生成初始請求,該方法默認使用GET請求訪問起始URL。
8.parse():它負責處理Response對象並返回結果,從中提取出需要的數據和後續的請求。
9.closed():當爬蟲進程結束之後,該方法會被調用,通常用來做一些釋放資源的善後操作 。
我們來看一下上一篇文章當中關於 爬蟲部分的代碼 :
# -*- coding: utf-8 -*- #設置字符格式為 utf-8.
import scrapy
from scrapy.selector import Selector
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from baidu.items import baiduItem
class ImageSpider(CrawlSpider):
name = 'image' #即爬蟲的名字,主要爬取圖片
allowed_domains = ['tieba.baidu.com'] #只爬取百度貼吧內的圖片。
start_urls = ['https://tieba.baidu.com/'] #起始爬取 url
rules = (
Rule(LinkExtractor(allow=(r'https://tieba.baidu.com\\?start=\\d+.*'))),
Rule(LinkExtractor(allow=(r'https://tieba.daidu.com/subject/\\d+')), callback='parse_item'),
)
def parse_item(self, response):
sel = Selector(response)
item = baiduItem()
item['name']=sel.xpath('//*[@id="content"]/h1/span[1]/text()').extract()
item['year']=sel.xpath('//*[@id="content"]/h1/span[2]/text()').re(r'\\((\\d+)\\)')
return item
一般來說,就是這樣的用法,上述的名詞在整個爬蟲代碼當中只佔很小的一部分。
如果想學習更多科技知識,可以點擊關注。
如果對文章中的內容有什麼困惑的地方,可以在評論區提出自己的問題,學記同大家一起交流,解決各種問題,一起進步。
青年學記 陪伴著各位青年
作者:青年學記 一名不斷進步的程序猿
一起學習 一起進步
走向自立
閱讀更多 青年學記 的文章