User Tools

Site Tools


programming:crawler:webxray

webXray

webXray [1Libert, Timothy (2015): "Exposing the Invisible Web: An Analysis of Third-Party HTTP Requests on 1 Million Websites", International Journal of Communication 9. (Link)] is a third-party request and privacy-policy measurement tool by Timothy Libert, and it was one of the three hand-curated lists the pre-2022 literature used to put a company name next to a third-party domain — the other two being Disconnect and WhoTracks.me, which two corpus papers merge with it explicitly [2Sánchez-Rola, Iskander; Dell'Amico, Matteo; Balzarotti, Davide; Vervier, Pierre-Antoine; Bilge, Leyla (2021): "Journey to the Center of the Cookie Ecosystem: Unraveling Actors' Roles and Relationships", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)] [3Dambra, Savino; Sanchez-Rola, Iskander; Bilge, Leyla; Balzarotti, Davide (2022): "When Sally Met Trackers: Web Tracking From the Users' Perspective", in: Proceedings of the USENIX Security Symposium. (Link)]. Its distinguishing part was never the crawler: it was the domain-ownership database — 827 corporate owners, arranged in a parent/child tree, each carrying a purpose, a country, trade-body memberships and privacy-policy URLs in dozens of languages.

If your question is “how do I attribute a third-party domain to a company?”, this is not the page you want. That question has its own page — Ownership resolution — which compares webXray's file against the two live alternatives, censuses what share of the third-party surface each one can name, gives measured accuracy rates from a random sample, and says which source to start a new measurement with. It is dated and it is maintained; this page is about the tool.

This page answers the narrower questions: what webXray was, why you cannot install it, what licence the copy you find is under, and what the corpus actually did with it.

Three things a new measurement needs to know before citing webXray:

  • The tool is gone from where every paper points, but it is not lost and it did not end up proprietary. github.com/timlib/webXray returns HTTP 404 and there has never been a PyPI package — but Libert relicensed webXray twice after its most widely mirrored snapshot, back to GPLv3 in 2021 — the licence its own website claimed in 2015 — and then to MIT in 2023, and that history survives in a fork. The author now runs a commercial product under the same name at webxray.ai.
  • The database survives and it is frozen at 2021-03-04. How stale that makes it has been measured: on a stratified random sample of its own coverage, drawn 2026-09-05 and re-adjudicated on 2026-09-11 where the first pass could not settle a row, it names today's owner for 69.2% of the entries that could be settled (95% CI 56.1–81.4%) — a rate over the fifth of its entries a 2026 crawl still meets, not over the file, and one that sits beside a coverage figure of 2.1% of the frame. The adjudicators were language models, the comparison has two snapshot frames, and there are several reasons not to read 69.2% as a rehabilitation. All of that is on Ownership resolution, and this page deliberately does not restate it: take the two figures from there, with their caveats, rather than from this bullet.
  • The list and the tool came apart in the literature years ago. Of the 15 corpus papers that name webXray, 7 used only the ownership list and exactly one ran the crawler — and that one is Libert's own paper.

Do not cite webXray as the tool you used unless you really ran it. Cite [1Libert, Timothy (2015): "Exposing the Invisible Web: An Analysis of Third-Party HTTP Requests on 1 Million Websites", International Journal of Communication 9. (Link)] or [4Libert, Timothy (2018): "An Automated Approach to Auditing Disclosure of Third-Party Data Collection in Website Privacy Policies", in: Proceedings of the ACM Web Conference. (DOI)] for the method — third-party request measurement with corporate attribution, and automated privacy-policy auditing — and cite the ownership list separately from the crawler.

The tool: architecture, and why you cannot install it

The last public version (webXray 3.x, “forensic edition”) is not the PhantomJS tool the 2016 OpenWPM paper criticised [5Englehardt, Steven; Narayanan, Arvind (2016): "Online Tracking: A 1-million-site Measurement and Analysis", in: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 1388–1401. Association for Computing Machinery, New York, NY, USA. (DOI) (Link)]. It drives consumer Chrome over the DevTools protocol directlywebsocket-client, no Selenium and no Puppeteer — and has a client/server split for distributed crawling.1)

Piece What it did Comparable current tool
ChromeDriver.py raw CDP against consumer Chrome, headless by default, configurable dwell time, crawl depth and page-load strategy plain CDP, Puppeteer, Playwright
Collector.py / Client.py / Server.py distributed collection: many browsers, one database OpenWPM's process pool; a job queue of your own
OutputStore.py + SQLite/Postgres schemas requests, cookies, local storage, WebSockets, optionally full response bodies HAR or a CDP log into your own store
policyXray (resources/policyxray/) found and extracted privacy-policy and terms text in several languages, via Mozilla's Readability.js still largely unreplaced; see [4Libert, Timothy (2018): "An Automated Approach to Auditing Disclosure of Third-Party Data Collection in Website Privacy Policies", in: Proceedings of the ACM Web Conference. (DOI)], [6Cui, Hao; Trimananda, Rahmadi; Markopoulou, Athina; Jordan, Scott (2023): "PoliGraph: Automated Privacy Policy Analysis using Knowledge Graphs", in: Proceedings of the USENIX Security Symposium. (Link)]
Reporter.py / Analyzer.py pre-canned CSV reports, including aggregated_tracking_attribution.csv your own SQL
resources/domain_owners/domain_owners.json the ownership database — the part that outlived the tool Tracker Radar, Disconnect entities.json

Availability, every line checked on 2026-08-17:

Where a paper points you State today
github.com/timlib/webXray HTTP 404. The timlib account itself still exists (HTTP 200) with 0 public repositories.
github.com/timlib/webXray_Domain_Owner_List HTTP 404. This is the URL cited by [7Kashaf, Aqsa; Sekar, Vyas; Agarwal, Yuvraj (2020): "Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)], among others.
webxray.org HTTP 200, but a placeholder: a heading and the line “Public interest projects for the interested public.” No source link, no version, no download. Until 2024-03-28 it hosted a live demo search engine over “scans of 100,000 sites”, with a company drop-down drawn from the ownership list; by 2024-05-24 that returned 401 Authorization Required, and from 2024-07-24 to at least 2026-02-05 the domain 301-redirected to webxray.ai. See the Wayback timeline below.
PyPI webxray / web-xray / policyxray 404 each. webXray was never packaged on PyPI.
github.com/thezedwards/webXray The most widely mirrored copy of webXray 3.x, last commit 2021-03-04. Its README still instructs git clone https://github.com/timlib/webXray.git. Every figure on this page comes from here — and it is not the most complete copy.
github.com/peterjoles/webXray The most complete surviving copy: 36 commits ahead of the above, preserving upstream history to 2023-02-01 including Libert's own post-2021 feature work and both relicensing commits. Last push 2023-03-12. This is the copy to take.
the fork network dormant; nothing pushed anywhere since 2023-03-12. forks_count reports 19 while the forks endpoint returns 20 objects.2)
github.com/RDBinns/webXray_Domain_Owner_List The ownership list split out as a standalone, GPL-3.0 repository, created and last pushed on 2018-04-05. Dormant since, and an older schema than the in-tool copy (owner_name rather than name, and no uses, platforms or trade_groups).
webxray.ai HTTP 200: a commercial litigation-support product (“Top US class action law firms and Fortune 100 in-house compliance teams use webXray to find actionable privacy violations first”). Libert's own homepage states “(Dr.) Timothy Libert is founder and CEO of webXray LLC.”3)

Check the licence of the copy you actually take: webXray has been under three licences in four states, and the surviving copies disagree. The first state is not in the table below because no repository snapshot carries it: webxray.org in 2015 described webXray 1.0 as “Free!*” and “(*Subject to terms of the GNU Public License.)”, linking the phrase to gnu.org/copyleft/gpl.html — which served GPLv3 both then and now.4) So the sequence is GPLv3 (2015) → PolyForm Strict (by 2021-03) → back to GPLv3 (2021-06-14) → MIT (2023-02-01): the 2021 commit titled “Now open-source” was a return, not a first opening, and the restrictive snapshot every mirror carries is the interlude between two free-software states. This is the most misleading thing about webXray's remains, and it caught this page — the first version asserted from one snapshot that webXray “is not open source and redistributing it is prohibited”. That is true of that snapshot and false of the project's final state.

Copy Licence What it permits
thezedwards/webXray, last push 2021-03-04 — the most widely mirrored snapshot, and the one every figure on this page was computed from LICENSE.md is PolyForm Strict 1.0.0; its README says “not open source… source available… non-commercial use only” use for any noncommercial purpose, explicitly including a “public research organization” and an “educational institution” — but no right to distribute, or to make “changes or new works based on the software”. GitHub reports NOASSERTION, and PolyForm Strict has no SPDX identifier, so artefact metadata expecting one has nothing to give
the same tree at 2021-06-14, commit 245ec5d7 “Update LICENSE.md — Now open-source” GPLv3 free software; several surviving forks still report GPL-3.0
the last state, commit 73fe0fc9 of 2023-02-01, authored by Tim Libert and visible today at peterjoles/webXray MIT, “Copyright © 2023 Tim Libert” anything, including redistribution. Its README still says “GPLv3, open source” — the README lagged the file

So webXray ended MIT-licensed, and the fork carrying that history is 36 commits ahead of the copy measured here.5) That does not make webXray live — upstream is still a 404, no fork has been pushed since 2023-03-12, and it still will not install: requirements.txt pins lxml==4.6.2 and psycopg2-binary==2.8.6, neither of which has a PyPI wheel beyond CPython 3.9, end-of-life since October 2025.6) But it changes what you may lawfully do with it, and it means every figure here is measured from the most restrictively licensed copy in existence. If you reuse webXray, take the 2023 MIT tree and name the commit.

The ownership list has its own history: RDBinns/webXray_Domain_Owner_List is GPLv3 by its own README, but it is the 2018 schema (owner_name, and no uses/platforms/trade_groups), not the 2021 file measured here.

The ownership database

domain_owners.json is a flat JSON array of owner records with an explicit tree. It is worth understanding in detail, because it is the most ambitious schema any of the three databases uses, and because most of that ambition is unfilled.

Field What it holds Filled, of 827 owners
id, name slug and display name all 827
parent_id the owner's parent company — the tree 319 (38.6%) have one
domains registrable domains attributed to this owner 3,215 in total; median 1 per owner, max 620 (groupm)
uses purpose vocabulary: marketing (484), hosting (102), audience_measurement (78), video (38), security (27), … 761 (92.0%); 38 distinct values, including two misspellings (content_reccomendation, accesibility)
platforms web (777), mobile (249), tv (176), iot (20), email (5) 803 (97.1%)
country ccTLD-style code: US (487), CN (114), UK (46), DE (36), … 36 distinct codes 826 (99.9%)
trade_groups self-regulatory membership: nai (85), daa (51), iab (36), … 104 (12.6%)
site_privacy_policy_urls etc. policy URLs tagged by ISO 639 language code — 69 languages, eng (554), chi (90), ger (81), fre (71) 591 (71.5%) have at least one
gdpr_statement_urls GDPR-specific statement 132 (16.0%)
ccpa_urls CCPA-specific page 4 (0.5%)
opt_out_urls opt-out mechanism 13 (1.6%)
crunchbase_id external company identifier 34 (4.1%)
health_segment_urls advertiser health-segment lists 52 (6.3%)
notes free-text reason for an attribution 263 (31.8%)
aliases alternate spellings, for matching 275 (33.3%)

Two features of this schema have no equivalent in Tracker Radar or Disconnect, and are the only reasons to still reach for this file: the per-language policy URLs (useful if your study needs a company's German privacy statement, and directly connected to policyXray), and the parent_id tree, which lets you resolve at the level your research question wants instead of the level the list happens to record.

That tree is not cosmetic. It runs up to six levels deep (508 owners at the root, 211 at depth 2, 80 at depth 3, 24 at depth 4, 2 each at depths 5 and 6), and for 2,175 of the 3,215 domains (67.7%) the immediate owner differs from the root of its tree. doubleclick.net is owned by “DoubleClick”, whose parent chain ends at “Alphabet”. Tracker Radar says “Google LLC” and Disconnect says “Google”. None of the three is wrong; they are answers to three different questions, and Design:Ownership resolution measures what happens when you forget that — resolving webXray to the root of its tree makes agreement with both live lists worse, not better, because its roots are historical holding companies.

The bundled Public Suffix List is frozen at 2016. webXray ships its own PSL copy plus a hand-written patch file whose header reads: “the public suffix list doesn't have most of the ccSLDs so I had to get them from wikipedia manually :-/ current as of 20160428”. The PSL's own maintainers say not to do this: “If you must use the PSL for this purpose, please do not bake static copies of the PSL into your software without update mechanisms that are frequently checking for updates and incorporating them.”7) The consequence was later measured: [8McQuistin, Stephen; Snyder, Peter; Perkins, Colin; Haddadi, Hamed; Tyson, Gareth (2023): "A First Look at the Privacy Harms of the Public Suffix List", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] lists timlib/webXray among the repositories shipping a fixed PSL version, in its “Production” category. If you reuse any of webXray's URL parsing, replace the suffix list.

What happened to webxray.org, and when

The Wayback Machine can date webXray's disappearance, and the dates are bounds, not events, because the Archive has no capture inside either window. Every check below was redone on 2026-09-05 after web.archive.org returned 502/503 all day on 2026-08-17; the CDX queries and the raw id_ captures are on the provenance page.

Artefact Last archived HTTP 200 First archived 404 What that bounds
github.com/timlib/webXray 2023-03-31 2023-11-15 consistent with peterjoles/webXray's last push on 2023-03-12 — the fork was taken, and then upstream went
github.com/timlib/webXray_Domain_Owner_List 2022-10-06 2025-01-18 a much wider window; this is the URL [7Kashaf, Aqsa; Sekar, Vyas; Agarwal, Yuvraj (2020): "Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] and others cite

webxray.org itself went through four states:

  • 2010-11-08 to at least 2011-09-27 — something else entirely, before Libert: a page titled “Web Xray - Free Website Data Mashup Tool” carrying a “beta 0.5” badge, a public directory of scraped sites with Google AdSense units. (Two separate elements, the <title> and a badge beside the logo, not one sentence. The domain's first archived capture, 2010-10-08, is a DreamHost parking page.)
  • 2022-01-23 to 2024-03-28 — a live demo search engine over “scans of 100,000 sites”, with a company drop-down drawn from domain_owners.json. This is the closest thing to a public interface the ownership list ever had, and it is gone.
  • 2024-05-24 to 2026-02-05401 Authorization Required, then from 2024-07-24 a 301 redirect to webxray.ai.
  • by 2026-08-17 — the present placeholder. The Archive has no capture of it, so when the domain came back off webxray.ai can only be bounded to between 2026-02-05 and 2026-08-17.

Use in publications

Figures below are from the seven venues on corpus (CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P, 2010–2026), not from the web-measurement literature as a whole.

15 papers name webXray anywhere in their full text — 0.3% of the 5,859-paper corpus. 13 of those 15 are among the 1,120 papers that ran a crawl, which is 1.2% of that population.8) The extraction's tool field fires on only 7 of them, because most of the rest cite it in a related-work sentence or a reference list; both signals are reported rather than merged. Every verdict below was read off a quoted sentence.

Role webXray plays Papers Share of 15
used the ownership list only 7 46.7%
cited in related work or the reference list 4 26.7%
ran the crawler 1 6.7%
compared against, as a baseline 1 6.7%
measured as a subject 1 6.7%
miscitation — a different “WebXRay” 1 6.7%
Paper What it used
Englehardt & Narayanan, CCS 2016, Online Tracking [5Englehardt, Steven; Narayanan, Arvind (2016): "Online Tracking: A 1-million-site Measurement and Analysis", in: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 1388–1401. Association for Computing Machinery, New York, NY, USA. (DOI) (Link)] compared: “WebXray is a PhantomJS based tool for measuring HTTP traffic… measurements with a stripped-down browser have the potential to miss a large number of resource loads”
Libert, TheWebConf 2018, An Automated Approach to Auditing Disclosure [4Libert, Timothy (2018): "An Automated Approach to Auditing Disclosure of Third-Party Data Collection in Website Privacy Policies", in: Proceedings of the ACM Web Conference. (DOI)] the only corpus paper that ran webXray: crawler, ownership list and policyXray together, over the Alexa top one million in October 2017 — 938,093 pages loaded and 248,029 policy links extracted; 91.27% of loaded pages made a third-party request, 10.89 unique third-party domains per page
Sørensen & Kosta, TheWebConf 2019, Before and After GDPR [9Sørensen, Jannick Kirk; Kosta, Sokol (2019): "Before and After GDPR: The Changes in Third Party Presence at Public and Private European Websites", in: Proceedings of the ACM Web Conference. (DOI)] citation: webxray.org named as the crawler a related study used; this paper uses its own
Matte et al., IEEE S&P 2020, Do Cookie Banners Respect My Choice? [10Matte, Célestin; Bielova, Nataliia; Santos, Cristiana Teixeira (2020): "Do Cookie Banners Respect my Choice? Measuring Legal Compliance of Banners from IAB Europe's Transparency and Consent Framework", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)] ownership list, to test whether a tracker's company appears in the IAB Global Vendor List. The one paper that pins the version: “WebXRay commit 04c3c8e8 (2019-06-18)”
Kashaf et al., IMC 2020, Third-Party Service Dependencies [7Kashaf, Aqsa; Sekar, Vyas; Agarwal, Yuvraj (2020): "Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] citation only (reference dated 2018-06-29); the paper builds its own TLD + certificate-SAN + SOA heuristic
Yang & Yue, PoPETs 2020, Web Tracking on Mobile and Desktop [11Yang, Zhiju; Yue, Chuan (2020): "A Comparative Measurement Study of Web Tracking on Mobile and Desktop Environments", in: Proceedings on Privacy Enhancing Technologies. (DOI)] ownership list (cited as “Tim Libert's library”), second of four sources tried in order: CrunchBase, then webXray, then TLS certificates, then WHOIS
Steffens et al., NDSS 2021, Who's Hosting the Block Party? [12Steffens, Marius; Musch, Marius; Johns, Martin; Stock, Ben (2021): "Who’s Hosting the Block Party? Studying Third-Party Blockage of CSP and SRI", in: Proceedings of the Network and Distributed System Security Symposium. (Link)] ownership list, retrieved from the Internet Archive because upstream was already hard to obtain
Sánchez-Rola et al., IEEE S&P 2021, Journey to the Center of the Cookie Ecosystem [2Sánchez-Rola, Iskander; Dell'Amico, Matteo; Balzarotti, Davide; Vervier, Pierre-Antoine; Bilge, Leyla (2021): "Journey to the Center of the Cookie Ecosystem: Unraveling Actors' Roles and Relationships", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)] ownership list, ranked third of three merged lists. The corpus files this paper under 2022; Crossref and the paper's own header put it at IEEE S&P 2021. Year tables derived from this corpus, here and on Ownership resolution, follow the corpus.
Musa & Nithyanand, PoPETs 2022, ATOM [13Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)] ownership list, alongside WHOIS records and TLS certificates
Cassel et al., PoPETs 2022, OmniCrawl [14Cassel, Darion; Lin, Su-Chin; Buraggina, Alessio; Wang, William; Zhang, Andrew; Bauer, Lujo; Hsiao, Hsu-Chun; Jia, Limin; Libert, Timothy (2022): "OmniCrawl: Comprehensive Measurement of Web Tracking With Real Desktop and Mobile Browsers", in: Proceedings on Privacy Enhancing Technologies. (DOI)] ownership list, “to determine the provenance of the requests”
Kats et al., PoPETs 2022, Who Knows I Like Jelly Beans? [15Kats, Daniel; Silva, David Luz; Roturier, Johann (2022): "Who Knows I Like Jelly Beans? An Investigation Into Search Privacy", in: Proceedings on Privacy Enhancing Technologies. (DOI)] citation: another study's webXray crawl of 22,484 adult websites
Dambra et al., USENIX Sec 2022, When Sally Met Trackers [3Dambra, Savino; Sanchez-Rola, Iskander; Bilge, Leyla; Balzarotti, Davide (2022): "When Sally Met Trackers: Web Tracking From the Users' Perspective", in: Proceedings of the USENIX Security Symposium. (Link)] ownership list, one of three merged lists
McQuistin et al., IMC 2023, Privacy Harms of the Public Suffix List [8McQuistin, Stephen; Snyder, Peter; Perkins, Colin; Haddadi, Hamed; Tyson, Gareth (2023): "A First Look at the Privacy Harms of the Public Suffix List", in: Proceedings of the ACM Internet Measurement Conference. (DOI)] subject: timlib/webXray appears in its table of repositories shipping a frozen PSL
Jakaria et al., PoPETs 2024, Connecting the Dots [16Jakaria, Md; Huang, Danny Yuxing; Das, Anupam (2024): "Connecting the Dots: Tracing Data Endpoints in IoT Devices", in: Proceedings on Privacy Enhancing Technologies. (DOI)] miscitation — describes Libert's tool but its reference resolves to “Gilbert Held. 1998. Cinco Network's WebXRay”, an unrelated 1998 network-management product
Wu et al., NDSS 2025, Transparency or Information Overload? [17Wu, Xiaoyuan; Hu, Lydia; Zeng, Eric; Habib, Hana; Bauer, Lujo (2025): "Transparency or Information Overload? Evaluating Users’ Comprehension and Perceptions of the iOS App Privacy Report", in: Proceedings of the Network and Distributed System Security Symposium. (Link)] citation: “the webXray list includes information on domain ownership”

Three findings from that table matter more than the counts.

The tool and the database came apart, and then the database was superseded. The last corpus paper to use either was published in 2022. Ownership use of Tracker Radar begins in 2021 and rises through the corpus edge; the year-by-year crossover, and what it does and does not license, is on Design:Ownership resolution.

Nobody says which snapshot they used. Of the 8 papers that used the crawler or the list, 2 say anything at all about which version, and 1 names a commit — [10Matte, Célestin; Bielova, Nataliia; Santos, Cristiana Teixeira (2020): "Do Cookie Banners Respect my Choice? Measuring Legal Compliance of Banners from IAB Europe's Transparency and Consent Framework", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)], which pins “WebXRay commit 04c3c8e8 (2019-06-18)” beside the Disconnect list, the Chromium build, the kernel, the user agent, the vantage point and the Tranco list id. The file has no version field and no release tags, so a commit or an archive URL is the only thing that makes a figure derived from it reproducible. Design:Ownership resolution treats that reproducibility table as the standard to meet and says what else belongs in it.

The corpus cannot see most of webXray's impact. The seven venues omit EuroS&P, ACSAC, RAID, AsiaCCS, CHI and SOUPS, and webXray's own author published most of its results outside those seven — his homepage lists The BMJ, JAMA, Communications of the ACM and New Media and Society9). “15 papers” is a statement about seven security and networking venues, not a measure of how much webXray was used.

The wider question — how many corpus papers do domain-to-company attribution at all, with what, and whether it is growing — is on Design:Ownership resolution: 136 papers name an ownership resource, 107 of them among the 1,120 that ran a crawl.

Methodology and limitations of these figures

  • The corpus audit script is scripts/report_webxray.mjs, published in full with its unedited output on the provenance page along with every query, every fold residue, the sources rejected and the figures deliberately not published. Corpus-wide selection and extraction caveats are on corpus. The ownership-database comparison, the coverage census and the accuracy rates moved to Ownership resolution on 2026-09-11; their scripts (owner_dbs.py, owner_adjudication.py, owner_sample.py, owner_random_sample.py, owner_irr_kappa.py) and outputs stay on this page's provenance page and its code appendix, whose ids are unchanged so the published record still resolves. ownership_resolution records the split and carries the new page's own queries.
  • The webXray population is a full-text sweep, not the extraction's tool field, because the tool field finds 7 papers where the sweep finds 15 and the difference is exactly the citation-only cases this page needs to separate. All 15 carry a hand verdict with a quoted sentence; the residue between sweep and hand map is zero, and the script fails loudly if that changes.
  • report_webxray.mjs section G checks 26 literal per-paper figures and quotes, 26 of 26 located against each paper's paper.cols.txt rendering. Since the 2026-09-11 split those 26 are divided between this page and Ownership resolution — the script still checks both sets, and the count has not been re-partitioned. The 16 extraction evidence quotes behind the tool and classification tuples were checked the same way: 4 exact, 11 partial, 1 below threshold; the below-threshold quote is present in the source and mangled by a column splice, not unsupported.
  • One figure was not published: [12Steffens, Marius; Musch, Marius; Johns, Martin; Stock, Ben (2021): "Who’s Hosting the Block Party? Studying Third-Party Blockage of CSP and SRI", in: Proceedings of the Network and Distributed System Security Symposium. (Link)] contains the sentence “webXray's list does account for 1,096 of our 1,146 found connections meaning that it alone does not suffice for our purposes”, whose two halves contradict each other. The published PDF reads the same way, so no coverage percentage is taken from it.
  • Every repository, licence and URL claim on this page was checked on 2026-08-17 and the Wayback bounds on 2026-09-05. Repository state changes; re-check before citing. The licence finding in particular was wrong in this page's first version, which asserted from one snapshot that webXray “is not open source and redistributing it is prohibited” — true of that snapshot and false of the project's final state.
  • The 1.2% of the 1,120 crawling papers above was published as 1.3% until 2026-09-11, when the split found that report_webxray.mjs was dividing a corpus-wide numerator (15) by the crawled denominator (1,120) instead of counting the 13 sweep hits that are actually in that population. The same bug on a larger figure read 12.1% where the comparable number is 9.6%; both are corrected and the script now computes the intersection.
  • Ownership resolutionthe question this tool's database answered: which source to use now, how much of the web each one covers, and how often each is right.
  • Crawler — generic automation libraries and the other specialised crawlers.
  • Tracker Radar Collector — the Puppeteer crawler that shares Tracker Radar's name and carries none of its ownership data.
  • OpenWPM — the instrument webXray was compared against in 2016, and the one still maintained.
  • Policies — what policyXray did, and what has replaced it.
  • Traffic files — capturing the requests webXray captured.

References

[1]
Libert, Timothy (2015): "Exposing the Invisible Web: An Analysis of Third-Party HTTP Requests on 1 Million Websites", International Journal of Communication 9. (Link)
[2]
Sánchez-Rola, Iskander; Dell'Amico, Matteo; Balzarotti, Davide; Vervier, Pierre-Antoine; Bilge, Leyla (2021): "Journey to the Center of the Cookie Ecosystem: Unraveling Actors' Roles and Relationships", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)
[3]
Dambra, Savino; Sanchez-Rola, Iskander; Bilge, Leyla; Balzarotti, Davide (2022): "When Sally Met Trackers: Web Tracking From the Users' Perspective", in: Proceedings of the USENIX Security Symposium. (Link)
[4]
Libert, Timothy (2018): "An Automated Approach to Auditing Disclosure of Third-Party Data Collection in Website Privacy Policies", in: Proceedings of the ACM Web Conference. (DOI)
[5]
Englehardt, Steven; Narayanan, Arvind (2016): "Online Tracking: A 1-million-site Measurement and Analysis", in: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 1388–1401. Association for Computing Machinery, New York, NY, USA. (DOI) (Link)
[6]
Cui, Hao; Trimananda, Rahmadi; Markopoulou, Athina; Jordan, Scott (2023): "PoliGraph: Automated Privacy Policy Analysis using Knowledge Graphs", in: Proceedings of the USENIX Security Symposium. (Link)
[7]
Kashaf, Aqsa; Sekar, Vyas; Agarwal, Yuvraj (2020): "Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
[8]
McQuistin, Stephen; Snyder, Peter; Perkins, Colin; Haddadi, Hamed; Tyson, Gareth (2023): "A First Look at the Privacy Harms of the Public Suffix List", in: Proceedings of the ACM Internet Measurement Conference. (DOI)
[9]
Sørensen, Jannick Kirk; Kosta, Sokol (2019): "Before and After GDPR: The Changes in Third Party Presence at Public and Private European Websites", in: Proceedings of the ACM Web Conference. (DOI)
[10]
Matte, Célestin; Bielova, Nataliia; Santos, Cristiana Teixeira (2020): "Do Cookie Banners Respect my Choice? Measuring Legal Compliance of Banners from IAB Europe's Transparency and Consent Framework", in: Proceedings of the IEEE Symposium on Security and Privacy. (DOI)
[11]
Yang, Zhiju; Yue, Chuan (2020): "A Comparative Measurement Study of Web Tracking on Mobile and Desktop Environments", in: Proceedings on Privacy Enhancing Technologies. (DOI)
[12]
Steffens, Marius; Musch, Marius; Johns, Martin; Stock, Ben (2021): "Who’s Hosting the Block Party? Studying Third-Party Blockage of CSP and SRI", in: Proceedings of the Network and Distributed System Security Symposium. (Link)
[13]
Musa, Maaz Bin; Nithyanand, Rishab (2022): "ATOM: Ad-network Tomography", in: Proceedings on Privacy Enhancing Technologies. (DOI)
[14]
Cassel, Darion; Lin, Su-Chin; Buraggina, Alessio; Wang, William; Zhang, Andrew; Bauer, Lujo; Hsiao, Hsu-Chun; Jia, Limin; Libert, Timothy (2022): "OmniCrawl: Comprehensive Measurement of Web Tracking With Real Desktop and Mobile Browsers", in: Proceedings on Privacy Enhancing Technologies. (DOI)
[15]
Kats, Daniel; Silva, David Luz; Roturier, Johann (2022): "Who Knows I Like Jelly Beans? An Investigation Into Search Privacy", in: Proceedings on Privacy Enhancing Technologies. (DOI)
[16]
Jakaria, Md; Huang, Danny Yuxing; Das, Anupam (2024): "Connecting the Dots: Tracing Data Endpoints in IoT Devices", in: Proceedings on Privacy Enhancing Technologies. (DOI)
[17]
Wu, Xiaoyuan; Hu, Lydia; Zeng, Eric; Habib, Hana; Bauer, Lujo (2025): "Transparency or Information Overload? Evaluating Users’ Comprehension and Perceptions of the iOS App Privacy Report", in: Proceedings of the Network and Distributed System Security Symposium. (Link)
1)
Read out of the surviving copy on 2026-08-17: webxray/ChromeDriver.py imports create_connection from websocket; requirements.txt pins only lxml==4.6.2, psycopg2-binary==2.8.6, textstat==0.7.0 and websocket-client==0.57.0; webxray/Client.py and webxray/Server.py implement the distributed mode.
2)
api.github.com/repos/thezedwards/webXray and …/forks?per_page=100, checked 2026-08-17.
3)
https://webxray.ai/ and https://timlibert.me/, both fetched 2026-08-17. The timlib GitHub profile lists company: webXray.ai.
4)
Wayback capture web.archive.org/web/20150530080456/http://webxray.org/, read 2026-09-05; the quote joins two adjacent <p> elements. The linked gnu.org/copyleft/gpl.html is archived as “Version 3, 29 June 2007” at web/20150531125231 and 302s to gnu.org/licenses/gpl-3.0.html today. The same page's install instructions end git clone https://github.com/timlib/webXray.git.
5)
api.github.com/repos/peterjoles/webXray reports spdx_id: MIT and pushed_at: 2023-03-12; compare/master…peterjoles:master reports ahead_by: 36; the LICENSE commit 73fe0fc9 is authored by “Tim Libert”. Checked 2026-08-17. Also checked: polyformproject.org/licenses lists strict/1.0.0 as the only Strict version, and spdx/license-list-data carries no Strict entry.
6)
Checked on PyPI, 2026-08-17. websocket-client 0.57.0 and textstat 0.7.0 ship universal/py3 wheels and are fine.
7)
https://publicsuffix.org/learn/, checked 2026-08-17.
8)
Published as “1.3%” until 2026-09-11: the script was dividing the corpus-wide count of 15 by 1,120, a numerator and a denominator from two different populations. See the methodology section.
9)
https://timlibert.me/, checked 2026-08-17.
You could leave a comment if you were logged in.
programming/crawler/webxray.txt · Last modified: by karel.kubicek.claude