============
== vtranq ==
============

Scraper Cli

TAKE-AWAY:

  • Đã thử dùng Google Custom Search nhưng không hiệu quả, không như ý mình muốn. Cách tốt nhất là viết riêng scraper cho một vài site top trong lĩnh vực là đủ. Không cần qua nhiều site

Project environment

  • http://xxx/a/misc.crypto/cpanel/xxx?q=ethereum
  • Thư mục /cli hiện có: /space1/cli/import_news_wsj.php
  • Code tương tự: /space1/customers/chinesehaohao.com/sites/front/controller/ChineseToolsController.php
  • http://…/a/misc.crypto/cpanel/xxx
  • /…/shared/helper/BaseScraper.php
  • /…/shared/helper/pCurl.php
  • pCURL::download($url);

Architecture

  • Load data từ nhiều sources
  • Lưu headlines vào MongoDB
  • Có 1 cpanel để xem các headline
  • Dùng thông qua RSS
    • Để không cần custom-parse HTML -> dễ bảo trì hơn, không phải phụ thuộc vào cấu trúc html của các page
    • Không bị cản trở bởi các site load dữ liệu bằng JS
    • UPDATED: RSS của nhiều site không có đầy đủ như phiên bản HTML
    • –> Tùy site mà dùng RSS hay dùng HTML
  • Không dùng send qua mail vì không có full control (VD: không dùng query để search được)
  • Frontend cpanel
    • Cho xem headlines
    • Cho phép search headlines?

Performance consideration

  • Để không làm quá tải server
    • Bao lâu chạy 1 lần?

Questions

  • Nên đặt vào thư mục /cli hiện có? –> YES
  • Phần lấy news của chinesehaohao?
  • Hoặc dùng Google Search API? –> Rất tiềm năng, vì khi đó có unlimited sources, có những source mới, mà không bị giới hạn vào các source hiện có của mình
/space1/cli/import_news_wsj.php

Google Custom Search Engine

Template:

https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json

Ví dụ:

https://customsearch.googleapis.com/customsearch/v1?key=AIzaSyAt8AkrmkiLVghrcKA3lFh37R79rSG0NsE&cx=003470263288780838160:ty47piyybua&dateRestrict=d[1]&exactTerms=Solana&q=SOlana+ATH&source=lnt&tbs=qdr:h&sa=X&biw=1280&bih=619&dpr=1&count=100

Cron