Hey @BullsEye0, thanks for dorks-eye — it's been a useful tool in my recon toolkit, especially the multi-engine search in v2.0. Nice work on the recent updates.
Pain point I've hit
The Google search function relies on googlesearch-python, which scrapes Google's HTML results pages. After a few dozen queries I start getting empty results or HTTP errors — Google's rate limiting kicks in hard, especially from a VPS. The time.sleep(1) between queries helps a bit but makes bulk dork scanning painfully slow. I've noticed some closed issues (#22, #25) suggest others have run into similar problems.
Suggestion
Would you consider adding an optional https://serpbase.dev backend for the google() function? It's a Google Search Results API that returns structured JSON (title, link, snippet, position) — no scraping, no rate limits, no CAPTCHAs to deal with. Free tier gives 100 searches to try it out.
The idea would be:
def google(dork, amount):
api_key = os.environ.get("SERPBASE_API_KEY", "")
if api_key:
# Use serpbase API — fast, reliable, no rate limit headaches
return _google_via_serpbase(dork, amount, api_key)
# Fall back to existing googlesearch-python scraping
...
If no API key is set, it falls through to the existing scraping approach — zero breaking changes.
Why it fits
- The tool already supports 5 search engines with a clean per-engine function pattern; adding an API mode to the Google function is a natural extension
- Users who run bulk dork lists or scan many domains would benefit from consistent, fast results without the sleep() delays
- The structured JSON response maps cleanly to what
google() already returns (a list of URLs)
Happy to help test or draft a PR if there's interest. Cheers!
Hey @BullsEye0, thanks for dorks-eye — it's been a useful tool in my recon toolkit, especially the multi-engine search in v2.0. Nice work on the recent updates.
Pain point I've hit
The Google search function relies on
googlesearch-python, which scrapes Google's HTML results pages. After a few dozen queries I start getting empty results or HTTP errors — Google's rate limiting kicks in hard, especially from a VPS. Thetime.sleep(1)between queries helps a bit but makes bulk dork scanning painfully slow. I've noticed some closed issues (#22, #25) suggest others have run into similar problems.Suggestion
Would you consider adding an optional https://serpbase.dev backend for the
google()function? It's a Google Search Results API that returns structured JSON (title, link, snippet, position) — no scraping, no rate limits, no CAPTCHAs to deal with. Free tier gives 100 searches to try it out.The idea would be:
If no API key is set, it falls through to the existing scraping approach — zero breaking changes.
Why it fits
google()already returns (a list of URLs)Happy to help test or draft a PR if there's interest. Cheers!