ArtooとPuppeteerを使用できないようです。 npm install artoo-js
まで使ってみましたが動作しませんでした。私も、人形のコマンドpage.injectFile(filePath)
を使ってbuild path distを注入しようとしました。運がない。これらの2つのlibsをうまく組み込むことができる人は誰ですか?もしそうなら、artooがどのように注入されたかのコードスニペットが大好きです。GoogleのPuppeteerでArtoo jsを使用してウェブを掻き集める
1
A
答えて
3
私はちょうど私が私がここにあなたが:)
(ステップ0:あなたはそれを持っていない場合はYarnをインストールしてください)に行く、あまりにもArtooを試みることができる考え出し、another answerのための人形遣いを試してみました
yarn init
yarn add puppeteer
# Download latest artoo script, not as a yarn dependency here because it won't be by the Node JS runtime
wget https://medialab.github.io/artoo/public/dist/artoo-latest.min.js
をindex.js
でこれを保存します。
const puppeteer = require('puppeteer');
(async() => {
const url = 'https://news.ycombinator.com/';
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Go to URL and wait for page to load
await page.goto(url, {waitUntil: 'networkidle'});
// Inject Artoo into page's JS context
await page.injectFile('artoo-latest.min.js');
// Sleeping 2s to let Artoo initialize (I don't have a more elegant solution right now)
await new Promise(res => setTimeout(res, 2000))
// Use Artoo from page's JS context
const result = await page.evaluate(() => {
return artoo.scrape('td.title:nth-child(3)', {
title: {sel: 'a'},
url: {sel: 'a', attr: 'href'}
});
});
console.log(`Result has ${result.length} items, first one is:`, result[0]);
browser.close();
})();
結果:
$ node index.js
Result has 30 items, first one is: { title: 'Headless mode in Firefoxdeveloper.mozilla.org',
url: 'https://developer.mozilla.org/en-US/Firefox/Headless_mode' }
これは見逃すにはあまりにも面白いです:今HackerNewsのトップ記事は、Firefoxヘッドレスについてです...
関連する問題
- 1. ウェブでPythonを使ったGoogleのニュースを掻き集める
- 2. beautifulsoupでウェブを掻き集める
- 3. ウェブを掻き集めるaspxウェブページR
- 4. ウェブを掻き集めるワードリスト
- 5. Google AnalyticsをScrapで掻き集める
- 6. ウェブでPythonの複数のサイトを掻き集める
- 7. 香港のe-法律をウェブで掻き集める
- 8. ウェブで複数のリンクを掻き集めるr
- 9. Pythonを使用してソースコードからテキストを掻き集める
- 10. C#を使用して複数のサイトを掻き集める
- 11. TripadvisorのWebをPythonを使用して掻き集める
- 12. 条件を満たしている間にウェブを掻き集める
- 13. Netflixを掻き集める
- 14. ポストリクエストを使用してRubyを掻き集めるウェブサイト
- 15. excelとVBAを使用してWebを掻き集める
- 16. VBAを使用してサイトからinnerHTMLを掻き集める
- 17. Rを使用してaspxウェブサイトから掻き集める
- 18. VIEWSTATEを掻き集める
- 19. ノードを掻き集める
- 20. 複数のページに亘って徹底的にウェブを掻き集める
- 21. Pythonを掻き集める
- 22. vbaを使用して複数のサイトからデータを掻き集める
- 23. PythonでBeautifulSoupを使用してyahooファイナンスからデータを掻き集める
- 24. Google Chrome puppeteerを使用
- 25. Pythonでテーブルを掻き集めるWeb
- 26. jsonをPythonリクエストで掻き集める
- 27. WebをPython 3で掻き集める
- 28. Phantomjsでサイトを掻き集める
- 29. xpathを使用してウェブページから特定のテキストを掻き集める
- 30. RESTライブラリを使用してiframe内のテーブルを掻き集める
私はあなたの質問に対する正確な答えを持っていけません。しかし、私は[Puppeteer&Chrome HeadlessでのWeb廃棄](https://medium.com/@e_mad_ehsan/getting-started-with-puppeteer-and-chrome-headless-for-web-scrapping-6bf5979dee3e)の記事を書いた。役に立つかもしれない。ありがとう。 – eMAD