{"id":13843425,"url":"https://github.com/deepseagirl/degoogle","last_synced_at":"2026-01-14T08:59:15.295Z","repository":{"id":41250480,"uuid":"276220291","full_name":"deepseagirl/degoogle","owner":"deepseagirl","description":"search Google and extract results directly. skip all the click-through links and other sketchiness","archived":false,"fork":false,"pushed_at":"2022-07-12T19:29:12.000Z","size":16,"stargazers_count":502,"open_issues_count":4,"forks_count":120,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-09-13T14:23:45.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deepseagirl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-30T22:18:15.000Z","updated_at":"2025-08-18T01:08:05.000Z","dependencies_parsed_at":"2022-07-10T02:46:16.095Z","dependency_job_id":null,"html_url":"https://github.com/deepseagirl/degoogle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deepseagirl/degoogle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepseagirl%2Fdegoogle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepseagirl%2Fdegoogle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepseagirl%2Fdegoogle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepseagirl%2Fdegoogle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepseagirl","download_url":"https://codeload.github.com/deepseagirl/degoogle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepseagirl%2Fdegoogle/sbom","scorecard":{"id":332174,"data":{"date":"2025-08-11","repo":{"name":"github.com/deepseagirl/degoogle","commit":"69e24e5cc4f780bf553398bd70a6bd9dd9dbe267"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 2/13 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T03:53:45.522Z","repository_id":41250480,"created_at":"2025-08-18T03:53:45.522Z","updated_at":"2025-08-18T03:53:45.522Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:02:07.914Z","updated_at":"2026-01-14T08:59:15.279Z","avatar_url":"https://github.com/deepseagirl.png","language":"Python","funding_links":[],"categories":["Python (1887)","Python","Pentesting"],"sub_categories":["Reconnaissance"],"readme":"# degoogle\nsearch Google and extract result urls directly. skip all the click-through links and other sketchiness\n\ncontributions welcome\n\n---\ninstall with pip:\n`pip install degoogle`\n\nor\n```\ngit clone\ncd degoogle\npip install .\n```\n\n---\n| command line usage | script usage |\n|-|-|\n| `degoogle \"query here\"` | make a `dg` object, execute queries with `run()`|\n\n```\nusage: degoogle [-h] [-o OFFSET] [-p PAGES] [-t TIME_WINDOW] [-j] query\n\nSearch and extract google results.\n\npositional arguments:\n  query                 search query\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -o OFFSET, --offset OFFSET\n                        page offset to start from\n  -p PAGES, --pages PAGES\n                        specify multiple pages\n  -t TIME_WINDOW, --time-window TIME_WINDOW\n                        time window\n  -j, --exclude-junk    exclude junk (yt, fb, quora)\n\n```\n\n*note that `time window` follows a syntax used by google's `tbs` parameter with the `qdr` option (read someone explain how it works [here](https://support.google.com/websearch/thread/7860817?hl=en\u0026msgid=7865083))*\n\n#### examples:\n1. find `.txt` files on `.edu` sites within the past `3 months`:\n\n`degoogle \"site:edu filetype:txt\" -t m3`\n\n![image](https://user-images.githubusercontent.com/47490856/86186391-f69e7880-bb06-11ea-8006-b21a54819beb.png)\n\n2. with one `dg` instance, update `query` in a loop to perform multiple searches:\n\n```\nfrom degoogle import dg\ndegoogler = dg()\nqueries = [\"site:edu\", \"site:gov\", \"filetype:txt\"]\nfor query in queries:\n\tprint(query)\n\tdegoogler.query = query\n\tresults = degoogler.run()\n\tfor result in results:\n\t\tprint(result)\n\tprint()\n```\n\n![image](https://user-images.githubusercontent.com/47490856/86186801-ffdc1500-bb07-11ea-8c64-b539ed4a0579.png)\n\n3. one liner: make `dg` instance (query set in constructor), search across 5months, format + print results, end:\n\n`[print(result['desc'],\": \",result['url'],\"\\n\") for result in (dg(\"intext:'begin rsa' site:*.edu.*\",time_window=\"m5\").run())]`\n\n![image](https://user-images.githubusercontent.com/47490856/86186862-30bc4a00-bb08-11ea-9a40-d8b3f96fe387.png)\n\n---\n\n\nthis is an experiment meant to have benefits for both user privacy and broadened osint capabilities\n\nidea: when you search google normally, your results will appear to be direct links to the target site, but what you're really getting is more like this:\n\n\u003e `https://www.google.com/url?sa=t\u0026rct=j\u0026q=\u0026esrc=s\u0026source=web\u0026cd=\u0026cad=rja\u0026uact=8\u0026ved=3ahUWEwjVn87AHIEHeyMAsIQFjAZegQIWARN\u0026url=https%3A%2F%2Fexample.com%2F\u0026usg=BOvWas1Dcw1x9iNBCBHvWL8rWGgJO4`\n\nby using a link like this to access `example.com`, you are providing more information about yourself than necessary. they don't need to know what is done with the results after they are served; their job is done, the click-through is merely a suggestion.\n\n`example.com` can identify that google was your referer; the page you're clicking through from includes your search query as part of the URL, so they probably know what you searched for too. whether or not they're looking at it is another question\n\nif you navigate to `example.com` directly, without a referer like google, `example.com` knows that you have visited, but not where you came from, and google knows even less - even if you originally found out about `example.com` by spotting it in a google search at some point.\n\ngoogle will obviously always know that the search took place, and which results were served, but I prefer to access results directly and not give anyone that click-through confirmation.\n\nthere are also utility benefits here for dorking - you might find a super juicy link on page 10 with a bunch of strange parameters cached, but when you follow google's click-through you're redirected to an index page or 404 without even having a chance to copy the link from the result to research more.\n\nthere are times where visually inspecting a URL is just as valuable as accessing the link. this tool ganks the good stuff, URL decodes and normalizes, and returns just the scraped URL + description\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepseagirl%2Fdegoogle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepseagirl%2Fdegoogle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepseagirl%2Fdegoogle/lists"}