puppeteer를 사용하여 트윗을 자르고 반환하는 API
GoogleChrome/puppeteer: Headless Chrome Node API
이번에는 트윗의 url을 쿼리로 주면 그 트윗을 잘라서 반환하는 API를 썼습니다.
akameco/capture-tweet-api
clone하고 npm start하면 port 3000에서 움직입니다.
localhost:3000?url=ツイートのurl
에 액세스하면 해당 트윗의 캡처가 반환됩니다. 시간이 걸리지만.그러나 데모 이미지의 내용을 보면 알 수 있듯이 aws lambda에 배포하려고했지만 다음과 같은 이유로 실패했습니다.
puppeteer는 node v7 이상이 필요하지만 aws lambda의 node 버전은 6 때문입니다.
Deploying on AWS Lambda · Issue #323 · GoogleChrome/puppeteer
또한 배포 크기에 약간의 문제가 있습니다.
위의 이슈에도 있듯이 AWS lambda의 향후에 기대하고 있습니다.
또, 요소를 잘라내어 캡처하는 처리는 라이브러리로 했습니다.
akameco/capture-element
이런 식으로 url과 잘라내고 싶은 요소를 지정하면 캡처를 얻을 수 있습니다.
const fs = require('fs');
const captureElement = require('capture-element')
captureElement(
'https://github.com/akameco',
'.js-calendar-graph'
).then(buffer => {
fs.writeFileSync(buffer, 'github.png')
})
이것을 사용하여 GitHub의 잔디 상황을 잘라내는 라이브러리와 모바일 버전의 트윗을 잘라내는 라이브러리도 조금 만들어 보았습니다.
akameco/capture-github-kusa
const fs = require('fs');
const captureGithubKusa = require('capture-github-kusa');
captureGithubKusa('akameco').then(img => {
fs.writeFileSync('github.png', img)
})
akameco/capture-mobile-tweet
const fs = require('fs');
const cap = require('capture-mobile-tweet');
const tweet = 'https://mobile.twitter.com/akameco/status/904080083802923008'
cap(tweet).then(img => {
fs.writeFileSync('mobile-tweet.png', img)
})
작은 슬라이드에 트윗이나 GitHub 잔디를 붙여 넣을 때 유용 할 수 있습니다.
뭔가가 있다면 댓글이나 트위터에서 논의합시다.
puppeteer를 aws lambda로 움직이려고 한 결과, 원래 aws lambda가 6.10이고 puppeteer가 node 7 이상이었기 때문에 막혔다 (배포시에 깨달았다) htps // t. 코 / 9 y zDmVL1
puppeteer를 사용하여 트윗 URL을 전달하면 트윗을 잘라낸 이미지를 반환하는 API를 작성했습니다. 하지만 이미지처럼 배포할 수 없었습니다. September 4, 2017 htps // t. 코 / LT에서 5qgRKj
참고
Puppeteer를 사용하여 지정한 DOM 전용 스크린 샷 얻기
피 c. 라고 r. 코 m/SK게임 T6v mZ
Reference
이 문제에 관하여(puppeteer를 사용하여 트윗을 자르고 반환하는 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akameco/items/2bb90da68deb0e67d9a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)