with Scrape-It.Cloud and Kafka?
Initiate the scraping process for a specific endpoint. See the documentation here
The Scrape-It.Cloud API allows you to automate the extraction of data from websites. It can parse, scrape, and retrieve content without the need for manual intervention. With this API on Pipedream, you can build workflows that trigger on various events and use the scraped data for numerous applications like data analysis, lead generation, and content aggregation.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
scrape_it_cloud: {
type: "app",
app: "scrape_it_cloud",
}
},
async run({steps, $}) {
const data = {
"url": `https://pipedream.com`,
}
return await axios($, {
method: "post",
url: `https://api.scrape-it.cloud/scrape`,
headers: {
"Content-Type": `application/json`,
"x-api-key": `${this.scrape_it_cloud.$auth.api_key}`,
},
data,
})
},
})
import { Kafka } from "kafkajs"
export default defineComponent({
props: {
kafka: {
type: "app",
app: "kafka",
}
},
async run({steps, $}) {
const kafka = new Kafka({
brokers: [`${this.kafka.$auth.host}:${this.kafka.$auth.port}`],
});
const consumer = kafka.consumer({ groupId: 'TestGroup' });
await consumer.connect()
await consumer.subscribe({ topic: 'SampleTopic', fromBeginning: true });
let consumedMessage = "";
const eachMessage = async function({ topic, partition, message }){
consumedMessage = message.value.toString();
return consumedMessage;
};
await consumer.run({
eachMessage,
});
const producer = kafka.producer();
await producer.connect()
await producer.send({
topic: 'SampleTopic',
messages: [
{ value: 'Welcome KafkaJS + Pipedream users! '+ new Date().toISOString() },
],
});
await producer.disconnect();
const data = await consumer.describeGroup();
return { consumedMessage, groupDescription: data };
},
})