This Ahrefs video at 4:30 details how to scrape Flippa listings using the Scraper Chrome extension:
They give this XPath code in the comments, but it doesn't work anymore:
I'm not entirely sure scraping the domain is possible anymore. Looking at the source I found this section, which I think is the relevant one, though I'm not sure:
I see listing.property-name there, but I don't see anything specifically about domains.
Does anyone know if it's still possible to scrape the domains only from a Flippa listing?
They give this XPath code in the comments, but it doesn't work anymore:
In that thread, a commenter gives this code://div[1]/div[2]/div[1]/a[2][(contains(text(), '.'))]
However, the Ahrefs code scraped the domain only. This seems to scrape the listing titles.//a[contains(@class,"card-title btn-link-unstyled stretched-link text-truncate GTM-search-result-card ng-binding")]/text()
I'm not entirely sure scraping the domain is possible anymore. Looking at the source I found this section, which I think is the relevant one, though I'm not sure:
<div ng-repeat="listing in listings"> <div id="listing-{{listing.id}}" class="listing-card card p-3 mt-3 hover-shadow"> <div class="row no-gutters"> <div class="col-lg-3"> <a href="/{{ listing.id }}" class="card-title mb-0 btn-link-unstyled stretched-link GTM-search-result-card" /> <img ng-src="{{ listing.thumbnail_url }}" class="card-img img-listing-screenshot" on-error-src="{{ listing.default_image }}"/> </div> <div class="col-lg-9 px-lg-3 d-flex flex-column justify-content-between"> <div class="row"> <div class="col-lg-9"> <div class="lead font-weight-bold card-title text-truncate pt-2 pt-lg-0"> <a href="/{{ listing.id }}" class="card-title btn-link-unstyled stretched-link text-truncate GTM-search-result-card"> {{ listing.property_name }} </a> <span ng-if="listing.scores" class="d-block mt-1 small"> {{ listing.scores }}</span> </div> <div class="d-flex flex-nowrap justify-content-between"> <div> <div class="text-muted">Type</div> <div class="font-weight-bold text-truncate">{{ listing.property_type }}</div> </div> <div class="d-none d-xxl-block"> <div class="text-muted">Industry</div> <div class="font-weight-bold text-truncate">{{ listing.category }}</div> </div> <div> <div class="text-muted">Monetization</div> <div class="font-weight-bold text-truncate">{{ listing.monetization || "N/A"}}</div> </div> <div class="d-none d-xxl-block"> <div class="text-muted">{{ ageLabel(listing) }}</div> <div class="font-weight-bold text-truncate">{{ formatAge(listing.established_at) }}</div> </div> <div> <div class="text-muted text-truncate">Net Profit</div> <div class="font-weight-bold text-truncate"> <span ng-if="listing.profit_average"> ${{ listing.profit_average | number }} p/mo</span> <span ng-if="!listing.profit_average">N/A</span> </div> </div> </div> <p class="card-text text-muted mt-2">{{ listing.title }}</p> </div> <div class="col-lg-3 d-none d-lg-flex flex-column justify-content-between align-items-end"> <div class="text-right"> <div class="text-nowrap_"> <a ng-if="listing.bidCountVisible" href="/auctions/{{ listing.id }}/bids" class="d-inline mr-2"> {{ listing.bid_count }} {{ i18nBid(listing.bid_count) }} </a> <span class="text-muted" ng-bind-html="saleMethodTitle(listing)"></span> </div> <div class="lead font-weight-bold m-0 mt-2">${{ listing.price | number }}</div> <span ng-if="listing.multiple" data-title="The current price divided by annual net profit" rel="tooltip" class="badge badge-light badge-super-seller"> Multiple {{ listing.multiple }}x </span> </div> <div class="d-flex flex-wrap justify-content-end mb-lg-2"> <div ng-repeat="icon in listing.integration_icons" class="ml-2 mt-lg-2 mt-xxl-0"> <img ng-src="{{ icon.path }}" data-title="{{ icon.title }}" rel="tooltip"> </div>
Does anyone know if it's still possible to scrape the domains only from a Flippa listing?