因此,我正在研究一個python web應用程序,它是一個體育用品(運動裝,工具等)的搜索引擎。基本上它應該搜索多個商店中的給定關鍵字並比較結果以返回20個最佳結果。在這種情況下提取數據的最有效方法是什麼?
我在想這樣做的最好也是最簡單的方法是編寫一個json文件,這個文件包含了關於如何在每個網站上提取數據的規則。例如:
[{"www.decathlon.com" : { "rules" : { "productTag" : "div['.product']",
"priceTag" : "span[".price"]" } }]
因此,對於十項全能,要獲得產品項目,我們搜索產品類別的div標籤。
我有一個清單,大約10 - 15網站刮。因此,對於每個網站,它會轉到rules.json,查看相關規則並使用它們來提取數據。
優點這種方法: 很容易寫,我們需要一個最小的Python腳本關於如何閱讀和URL映射到他們的規則,並通過BeautifulSoup提取數據的邏輯+這也是很容易的添加,刪除新的網址及其規則。
缺點這種方法:對於每個搜索我們向每個網站發起一個請求,所以在同一時間做出10個請求,然後比較結果,所以如果20個用戶同時搜索,我們將有大約200個請求會使我們的應用程序變慢很多!
另一種方法:
我想,我們可以有一個巨大的關鍵字列表,然後在00:00,腳本啓動要求所有URL列表中的每個關鍵字,對它們進行比較,然後將結果存儲在CouchDB中,以便在當天使用,並且每天都會更新。這種方法唯一的問題是幾乎不可能有所有可能的關鍵字列表。
那麼請幫助我解決這個問題?鑑於我沒有太多時間。