mirror of https://github.com/Flinner/dots.git
feat: scrape paul's site
This commit is contained in:
parent
e93258dde1
commit
00e4620c81
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
exit_m() {
|
||||||
|
echo "$1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# curl with cache! (in "/tmp")
|
||||||
|
curl_cache(){
|
||||||
|
local cache_path=`echo $1 | sed 's|/|_|g'`
|
||||||
|
local cache_path="/tmp/$cache_path"
|
||||||
|
|
||||||
|
[ -f "$cache_path" ] || curl -s "$1" -o "$cache_path"
|
||||||
|
|
||||||
|
echo "$cache_path"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
domain="https://tutorial.math.lamar.edu/"
|
||||||
|
file=`curl_cache "$1"` # main file, that has all questions
|
||||||
|
q_num=$(( $2 - 1 )) #numbering starts at 1
|
||||||
|
|
||||||
|
# naive method to check for only args!
|
||||||
|
[ -n "$file" ] || exit_m "No Files Given"
|
||||||
|
[ -n "$q_num" ] || exit_m "No Questoin Number Given!"
|
||||||
|
[ ! -n "$3" ] || exit_m "Incorrect number of args :("
|
||||||
|
|
||||||
|
|
||||||
|
# get all practice questions
|
||||||
|
question_text=`cat $file | pup 'body .practice-problems li json{}' |
|
||||||
|
jq ".[${q_num}].text" | tr -d '"'`
|
||||||
|
|
||||||
|
# get all solution *links*
|
||||||
|
solution_path=`cat $file | pup 'body .practice-problems li json{}' |
|
||||||
|
jq -r ".[${q_num}].children[0].href"`
|
||||||
|
solution_url="$domain/$solution_path"
|
||||||
|
|
||||||
|
|
||||||
|
# ==== get solution =========
|
||||||
|
# download if not already downloaded
|
||||||
|
solution_path=`curl_cache "$solution_url"`
|
||||||
|
|
||||||
|
echo "$question_text"
|
||||||
|
echo "\n"
|
||||||
|
cat "$solution_path" | pup 'body .soln-content p text{}'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue