Skip to content

Instantly share code, notes, and snippets.

@pshapiro
pshapiro / mailchimp.html
Created May 11, 2017 04:45
Example of posting an email subscriber form to MailChimp in AMP using amp-form
<!doctype html>
<html amp>
<head>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-form" src="https://cdn.ampproject.org/v0/amp-form-0.1.js"></script>
<script async custom-template="amp-mustache" src="https://cdn.ampproject.org/v0/amp-mustache-0.1.js"></script>
<link rel="canonical" href="http://localhost">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<style amp-custom>
@pshapiro
pshapiro / mailchimp-post.php
Created May 11, 2017 15:27
amp-form implementation of a MailChimp / Email Subscribe post handler.
<?php
if (!empty($_POST)) {
header("access-control-allow-credentials:true");
header("access-control-allow-headers:Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token");
header("access-control-allow-methods:POST, GET, OPTIONS");
header("access-control-allow-origin:".$_SERVER['HTTP_ORIGIN']);
header("access-control-expose-headers:AMP-Access-Control-Allow-Source-Origin");
// change to represent your site's protocol, either http or https
header("amp-access-control-allow-source-origin:https://".$_SERVER['HTTP_HOST']);
header("Content-Type: application/json");
@pshapiro
pshapiro / search.html
Created May 12, 2017 21:13
Basic example of using the GET method using amp-form
<form action="https://searchwilderness.com/" method="get" target="_top">
<input name="s" placeholder="Search The Blog" required="" type="text">
<input type="submit" value="Search">
</form>
@pshapiro
pshapiro / reddit-keyword-insights.py
Created August 23, 2017 02:41
Get stats from reddit keywords
import praw
import csv
import datetime
# Create an app: https://www.reddit.com/prefs/apps
# Use http://localhost:8080 as redirect uri
username = ""
password = ""
clientid = ""
clientsecret = ""
@pshapiro
pshapiro / index.js
Created November 28, 2017 06:46
Puppeteer Crawler Example
var Walker = require('puppeteer-walker')
var fs = require('fs')
var walker = Walker()
fs.writeFile('output.csv', 'URL, Title, H2\r\n', 'utf8', function (err) {
console.log(`Header written`)
})
walker.on('end', () => console.log('finished walking'))
@pshapiro
pshapiro / metadesc.py
Created June 6, 2018 22:19
Use Text Summarization Algorithms to Help Aid the Writing of Meta Descriptions
import csv
import os
from sumy.parsers.html import HtmlParser
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lsa import LsaSummarizer as Lsa
from sumy.summarizers.luhn import LuhnSummarizer as Luhn
from sumy.summarizers.text_rank import TextRankSummarizer as TxtRank
from sumy.summarizers.lex_rank import LexRankSummarizer as LexRank
from sumy.summarizers.sum_basic import SumBasicSummarizer as SumBasic
@pshapiro
pshapiro / expired_domain_finder.ipynb
Created January 29, 2019 21:07
Jupyter Notebook that input outlink from Screaming Frog crawl, grabs PA & DA from Moz API, and uses WHOIS API to determine domain availability.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pshapiro
pshapiro / Auto301Redirects.ipynb
Created June 19, 2019 16:50
Automatic 301 Redirects with SpaCy
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pshapiro
pshapiro / hitwise-audienceview-keyword-research.py
Created June 20, 2019 19:44
Automate Keyword Profiling with AudienceView - Requires and existing Crosstab Report
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
import time
import pandas as pd
import os
@pshapiro
pshapiro / GoogleEntities.ipynb
Last active February 11, 2024 23:21
Extract Entities from Search Results using Google NLP for Keyword Research Opportunities
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.