Nothing major, as long as it works. Wouldn't worry about writing scripts perfectly as long as they work. Only do that if you enjoy it and want to learn more.
But if you do want to improve it, just for fun, check out BASH_REMATCH, regex grouping, using awk, using --etag-compare or --time-cond in curl (not all sites provide etags or correct times, check the headers with -I), try to avoid overcomplicated regex and use json where possible (you can look in the network monitor tab in your browser (F12) to see any json requests to the page, right click, copy, copy as curl, then use it with jq), see if the site has an actual API, or use xidel/xmllint to parse html, and always run your code through shellcheck. The main reason I said use less pipes is so you're using less commands. Basically just try to keep things as simple as possible.