0
我正在爲相同的信息刮~10個網站,並且目前每個人都有自己的腳本。這些腳本都具有相同的基礎(遍歷可用頁面,刮取信息,保存它),但具有不同的屬性。重構Ruby刮碼(具有不同的屬性)
舉個例子,這些都是我是如何從兩頁提取author
元素的例子:
page.at('b[itemprop="author"]').children.text.strip
page.at('.author-username').text.strip
我的目標是重構這個所以主要的邏輯是由一類處理,但我根據來源,無法弄清楚如何通過上述提取器。我知道我可以pass CSS selectors as arguments,但正如你所看到的,每個提取都有一些額外的邏輯。
雖然我可以有一個單獨的方法來處理這個問題(如上一個鏈接中所述),但這將很快失去約10個來源。
重構此代碼的最佳方式是什麼?
感謝您的回答Scott,這很有幫助。請您詳細說明我將如何處理通過這些字符串提供的方法調用('['children','text','strip']')? 作爲一個例子,我將如何運行'attribute_1.children.text.strip'? – Manonthemoon
啊我想通了,我使用'page.send()'調用每個方法。 –
Manonthemoon
對。實際上,這些方法列表應該是符號而不是字符串。要麼應該工作相同,但符號更有效率的內存。 –