Skip to content

Instantly share code, notes, and snippets.

View adrianhorning08's full-sized avatar

Adrian Horning adrianhorning08

View GitHub Profile
@adrianhorning08
adrianhorning08 / zillowScraper.js
Last active January 28, 2025 21:32
Zillow Scraper
async function scrollDown() {
const wrapper = document.querySelector("#search-page-list-container");
await new Promise((resolve, reject) => {
var totalHeight = 0;
var distance = 600;
var timer = setInterval(async () => {
var scrollHeightBefore = wrapper.scrollHeight;
wrapper.scrollBy(0, distance);
totalHeight += distance;
@adrianhorning08
adrianhorning08 / apollo.js
Created September 10, 2023 19:15
Apollo Scraper
function clickAccessEmailIfAvailable() {
const tbodys = document.querySelectorAll(
".finder-results-list-panel-content table tbody"
);
for (let i = 0; i < tbodys.length; i++) {
const tbody = tbodys[i];
const buttons = tbody.querySelectorAll("button");
// Create an array to store buttons with text including "Access Email"
const filteredButtons = [];
{"name":"Chef Art Smith's Homecomin'","location":"Disney Springs, The Landing","destinationId":"WDW","mealPeriodsList":[{"name":"Brunch","label":"Brunch"},{"name":"Lunch","label":"Lunch"},{"name":"Dinner","label":"Dinner"}],"mealPeriods":[{"name":"Brunch","label":"Brunch","experience":"Casual Dining","serviceStyle":"A la Carte","groups":[{"name":"Sunrise Starters","type":"Appetizer","mickeyCheckItems":false,"items":[{"title":"Biscuits","priceValue":10,"description":"Cheddar cheese drop biscuits served with choice of blackberry fig jam or sawmill gravy","currency":"USD"},{"title":"Everglazed Doughnuts","priceValue":10,"description":"Mini glazed doughnuts, baked fresh daily by our neighbors at Everglazed! Topped with pecans and bacon for $2","currency":"USD"},{"title":"Bee Haven Bay Fried Green Tomatoes","priceValue":17,"description":"Shaved ham, rémoulade sauce, and dressed local greens","currency":"USD"},{"title":"Church Lady Deviled Eggs","priceValue":14,"description":"HFK-style whole deviled eggs","currency
@adrianhorning08
adrianhorning08 / scrapeLinkedinSearch.js
Last active January 13, 2024 23:39
Scrape Linkedin Search
async function scrapeLinkedinSearch() {
let allProfiles = [];
let page = 1;
window.scrollTo(0, document.body.scrollHeight);
await new Promise((resolve) => setTimeout(resolve, 500));
// find the button aria-label="Next"
let nextButton = document.querySelector('button[aria-label="Next"]');
const peeps = getProfiles();
allProfiles.push(...peeps);
{
"mkSpots": {
"ESpot_CommonStyles": {
"key": "ESpot_CommonStyles",
"content": {
"content": "<script>\nif (!Array.prototype.indexOf) { Array.prototype.indexOf = function(obj, start) { for (var i = (start || 0), j = this.length; i < j; i++) { if (this[i] === obj) { return i; } } return -1; } }\nif (!Array.prototype.filter) { Array.prototype.filter = function(fun/*, thisArg*/) { 'use strict'; if (this === void 0 || this === null) { throw new TypeError(); } var t = Object(this); var len = t.length >>> 0; if (typeof fun !== 'function') { throw new TypeError(); } var res = []; var thisArg = arguments.length >= 2 ? arguments[1] : void 0; for (var i = 0; i < len; i++) { if (i in t) { var val = t[i]; if (fun.call(thisArg, val, i, t)) { res.push(val); } } } return res; }; }\n</script>\n\n<script>\nvar MKT_VERSION = {\n 'mkt': '5.145',\n 'standard': '5.64',\n 'mobile': '5.53',\n 'standard-spa': '5.64',\n 'standard-apps': '5.8',\n 'zaralib-p': '1.40'\n}\n</script
This file has been truncated, but you can view the full file.
{
"totalCount": 1235,
"data": [
{
"activatedOn": "2023-08-16T21:42:46Z",
"locations": [
{
"address": "Conifer Town Centre Dr",
"city": "Conifer",
"county": "Jefferson County",
{
"code": "000000",
"message": null,
"messageDetail": null,
"data": {
"catalogs": [
{
"catalogId": 48,
"parentCatalogId": null,
"icon": "https://public.bnbstatic.com/image/cms/content/body/202202/9252ba30f961b1a20d49e622a0ecfad5.png",
@adrianhorning08
adrianhorning08 / linkedinJobs.js
Created August 11, 2023 17:06
Linkedin Jobs Scraper
import fetch from "node-fetch";
import fs from "graceful-fs";
import * as cheerio from "cheerio";
async function getJob(id) {
try {
const response = await fetch(
`https://www.linkedin.com/jobs-guest/jobs/api/jobPosting/${id}`,
{
// agent: getProxyAgent(), put proxy here
@adrianhorning08
adrianhorning08 / googleJobs.js
Created August 11, 2023 16:44
Google Jobs Scraper
import * as cheerio from "cheerio";
import fs from "graceful-fs";
import puppeteerExtra from "puppeteer-extra";
import stealthPlugin from "puppeteer-extra-plugin-stealth";
import chromium from "@sparticuz/chromium";
(async function () {
console.log("starting");
let term = "marketing";
{
"properties": {
"title": "Asana",
"short_description": "Asana is a computer software company that specializes in the fields of work management and productivity.",
"facet_ids": [
"contact",
"siftery",
"ipqwery",
"privco",
"aberdeen",