亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么處理配置文件中的重復值

發布時間:2021-10-20 16:06:32 來源:億速云 閱讀:115 作者:iii 欄目:web開發

這篇文章主要講解了“怎么處理配置文件中的重復值”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么處理配置文件中的重復值”吧!

在我們創建配置文件的時候,可能會出現一些值需要重復填寫多次的問題。例如我最近寫了一個可配置爬蟲,只需要配置幾條 XPath,就能夠自動生成一個  Scrapy 爬蟲。從而快速完成簡單網站的爬取。

這個配置文件長這樣:

name: 某某網站爬蟲 host: 'https://www.kingname.info' headers:   user-agent: xxx   host: yyyy   referer: zzz rule:   start_url: 'https://www.kingname.info'   detail_url: //div[@class="xxx"]/a/@href   next_page_xpath: //div[@class="next"]/@href   ...其他配置參數...

這個配置文件是使用 YAML  格式創建的。我們可以看到,最外層的host的值為https://www.kingname.info,而在rule里面,start_url的值也是這個網址。這樣就重復了。這種重復的情況還有很多,例如列表頁的翻頁鏈接的  XPath 與正文頁的翻頁鏈接的 XPath 是一樣的,多個類型可以具有相同的執行規則等等。

如果你使用 JSON 來作為配置文件的格式,那么確實你要重復寫。但如果你使用 YAML  來作為配置文件的格式,那么你可以通過添加錨記(anchor)和別名(alias)的方式,實現一次填寫,多次使用的效果。

我們先來看一個簡單的例子:

import yaml  config = ''' name: &name 青南 salary: 99999 other_name: *name ''' info = yaml.safe_load(config) print(info)

運行效果如下圖所示:

怎么處理配置文件中的重復值

可以看到,原本定義一個key-value類型的值,應該是key: value的形式,但是這里我寫成key: &錨記名  value,于是,這個錨記名就相當于是一個變量名,就可以在其他地方引用。引用的時候,寫作*錨記名。這有點像 C  語言中的獲取變量的內存地址(&),然后顯示指針的值(*)。錨記名可以 key 相同,也可以不同。

當然,除了簡單的key-value,也可以在復雜的場景下使用,例如:

import yaml  config = ''' article_xpath: &article     title: //div[@class="title"]/text()     detail: //div[@class="content"]/text()     image:          - //div/img[@class="xx"]/@href         - //p/img[@class="yy"]/@href about_xpath:     summary: //div[@class="summary"]/text() book_xpath: *article ''' info = yaml.safe_load(config)

運行效果如下圖所示:

怎么處理配置文件中的重復值

這樣一來,如果某一項會多次出現的配置發生了修改,我們只需要改一個地方,就能在多個地方同時自動生效,不用再一個一個手動修改了。既節省了時間又不容易出錯。

感謝各位的閱讀,以上就是“怎么處理配置文件中的重復值”的內容了,經過本文的學習后,相信大家對怎么處理配置文件中的重復值這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀化市| 荔波县| 大石桥市| 库尔勒市| 隆尧县| 华宁县| 高邮市| 伊宁市| 琼海市| 玉屏| 崇仁县| 田林县| 霸州市| 海门市| 太白县| 马关县| 沙雅县| 元谋县| 屏边| 宁河县| 临漳县| 浮山县| 泾川县| 新绛县| 察哈| 张家界市| 广水市| 盘锦市| 竹北市| 原阳县| 紫阳县| 连州市| 汾阳市| 洱源县| 沽源县| 巴南区| 巨鹿县| 禹州市| 革吉县| 鹤岗市| 兖州市|