Là gì

What Is Screen Scraping Là Gì ? Web Scraping Được Sử Dụng Để Làm Gì?

Nếu bạn đã từng copy, paster từ một trang web nào xuống dữ liệu của mình thì công việc đó chính là “Web Scraping” nhưng chỉ khác là bạn đang làm một cách thủ công mà thôi. Trong bài hướng dẫn học web scraping sử dụng nodejs và javascript này, chúng tôi trình bày 4 cách giúp các bạn có thể lấy được bất kỳ dữ liệu nào của web về database của mình. Đặc biệt, dành cho các bạn kinh doanh thì việc lấy data trên yellowpage (những trang vàng) là một dữ liệu ngon đấy.

Đang xem: Screen scraping là gì

Bài viết này dành cho những lập trình viên đã có một chút kinh nghiệm về javascript và nodejs, đối với những bạn chưa có kinh nghiệm thì bài học web scraping cũng sẽ có ích cho các bạn về kiến thức. Nhưng đầu tiên chúng ta sẽ đi tìm hiểu định nghĩa về web scraping.

Web Scraping là gì?

Web Scraping là trích xuất dữ liệu từ một bất kỳ website hay còn gọi là “cào” dữ liệu trên một trang web. Không giống như quá trình trích xuất dữ liệu thủ công, Web Scraping sử dụng tự động hóa thông minh để lấy hàng trăm, hàng triệu hoặc thậm chí hàng tỷ dữ liệu trên internet. Học web scraping cũng không khó, nhất là những lập trình viên sử dụng javascript và nodejs.

Học web scraping

Quy trình làm việc web scraping rất đơn giản, nó không phức tạp. Nhưng đòi hỏi bạn phải tỉ mỉ, cẩn thận mà thôi và hiểu một chút về DOM nữa. Trước tiên chúng ta phải lấy hết data một trang web bao gồm html. Sau đó chúng ta sẽ đọc từng node trên DOM mà chúng ta muốn lấy. Đó là quy trình, không khó đâu. Sau đây là 4 cách học web scraping như thế nào.

Cheerio – web scraping

Ở bài này tôi get dữ liệu từ trang web yellowpages.vnn.vn Các bạn chú ý hình ảnh phía dưới, ở đó là nơi chúng ta sẽ lây dữ liệu của những công ty trên trang đó về.

Xem thêm: Phương Pháp 5 Why Là Gì – Cách Sử Dụng 5 Why Khi Giải Quyết Vấn Đề

học web scraping

Các bạn mở “view page source” bạn sẽ nhìn thấy “Đồng Phục Dony – Công Ty CP Quốc Tế Dony” nằm trong thẻ a, và thẻ h2 có class=”company_name” chính vì vậy ta sẽ lấy dữ liệu dựa vào những chi tiết đó.

Xem hình ảnh cho rõ

web scraping là gì?

# npm i axios cheerio –save

axios là gì thì bạn có thể đọc qua bài viết này, để hiểu sâu hơn về axios. Giờ đây hãy xem với Cheerio chúng ta sẽ tim được những gì.

//web-scraping.jsconst axios = require('axios');const cheerio = require('cheerio');const getPostTitles = async () => {try {const { data } = await axios.get('https://www.yellowpages.vnn.vn/cls/268180/may-dong-phuc.html');const $ = cheerio.load(data);const postTitles = <>;$('div > h2.company_name > a').each((_idx, el) => {const postTitle = $(el).text()postTitles.push(postTitle)});return postTitles;} catch (error) {throw error;}};getPostTitles().then((postTitles) => console.log(postTitles));Run file sử dụng nodejs: node web-scraping.js.

Xem thêm: Buy Innova Disc Golf Logo Vinyl Decal Sticker Decal, Innova Sticker Decal (Vinyl Cutout)

JSDOM – web scraping

Tương tự như vậy ta sử dụng một thư viện khác như cheerio đó là jsdom

const { JSDOM } = require(“jsdom”)const axios = require('axios')const upvoteFirstPost = async () => { try { const { data } = await axios.get(“https://www.yellowpages.vnn.vn/cls/268180/may-dong-phuc.html”); const dom = new JSDOM(data); console.log(dom.window.document.querySelectorAll('div > h2.company_name > a').forEach(link => { console.log(link.textContent); })); } catch (error) { throw error; }};upvoteFirstPost().then(msg => console.log(msg));

Nightmare – web scraping

const Nightmare = require('nightmare')const nightmare = Nightmare()nightmare.goto('https://www.google.com/').type(“input“, 'ScrapingBee').click(“input“).wait('#rso > div:nth-child(1) > div > div > div.r > a').evaluate(() =>document.querySelector('#rso > div:nth-child(1) > div > div > div.r > a').href).end().then((link) => {console.log('Scraping Bee Web Link': link)}).catch((error) => {console.error('Search failed:', error)})

puppeteer – web scraping

Ở tips javascript có một bài viết nói về puppeteer là gì? Và cách sử dụng puppeteer.

const puppeteer = require('puppeteer')async function getVisual() {try {const URL = 'https://www.reddit.com/r/programming/'const browser = await puppeteer.launch()const page = await browser.newPage()await page.goto(URL)await page.screenshot({ path: 'screenshot.png' })await page.pdf({ path: 'page.pdf' })await browser.close()} catch (error) {console.error(error)}}getVisual()

Xem thêm bài viết thuộc chuyên mục: Là gì

Trả lời

Back to top button