Use web scraping to find and qualify plumbing businesses only from sources that permit your intended collection and outreach. Do not scrape Google Search results or turn Google Maps content into a mailing or telemarketing list. Define the kind of plumbing work and territory you want, collect only necessary business-level details, verify and score each record, then contact relevant prospects transparently and measure booked work—not list size.
Decide what counts as a plumbing lead before collecting data
A list of businesses is not automatically a list of sales-ready leads. First define whom you want to reach and why. For example, you might be looking for commercial plumbing contractors within a set radius who advertise emergency service, or property managers who may need recurring maintenance. Those are different targets and call for different sources, fields, and messages.
- Job type: emergency plumbing, drain cleaning, sewer work, water-heater replacement, commercial maintenance, or another specific service.
- Territory: service cities, ZIP codes, or a radius that your team can actually cover.
- Target: a plumbing business, homeowner, property manager, general contractor, or another buyer. A directory of plumbing companies may help you find partners or competitors, but it does not by itself identify homeowners who need work.
- Commercial threshold: minimum likely job value, recurring-work potential, or other reason a prospect merits follow-up.
- Contact rules: permitted channel, acceptable contact frequency, and how you will honor requests not to be contacted.
Write down these criteria before gathering records. They help prevent an impressive-looking but irrelevant list from becoming a time-consuming outreach project.
Choose a source whose terms allow the job
Permission is a source-by-source question. A page being publicly visible does not mean its content can be copied at scale or used for marketing. Google says automated queries and scraping Google Search results without express permission violate its spam policies and Terms of Service. Google Maps terms prohibit using Maps content to create or augment a business-listings database, mailing list, or telemarketing list, and prohibit mass downloading. Do not use a browser scraper to evade those restrictions.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitches#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Consider a directory, trade association, municipal permit source, or other database only after checking its terms for automated collection, storage, and the particular kind of contact you plan. The same data may be suitable for internal research but not for a marketing list. If the source is unclear, ask its operator or choose another source rather than assuming permission.
Google’s Places API is an official alternative for certain place data, but using an API does not automatically authorize every downstream use. Google’s documentation requires public Terms of Use and a Privacy Policy, attribution when displaying data, and compliance with its caching and storage limits; place IDs are the stated exception that may be stored indefinitely. Review the current API terms and use restrictions for your intended workflow before building around it.
| Source type | What to establish before collection | Important trade-off |
|---|---|---|
| Directory or trade association | Whether automated access, retention, and your intended contact use are permitted by that source’s terms | Fields, freshness, and access limits depend on the individual source; verify them rather than assuming a standard. |
| Municipal permit or public-record source | Whether bulk access is available and what reuse or contact restrictions apply | A permit record can indicate an activity or project, but does not establish that a company wants your offer. |
| Google Places API | Current API terms, required public Terms of Use and Privacy Policy, attribution, and storage/caching requirements | Technically using the API does not make it suitable for a mailing or telemarketing list if the applicable terms prohibit that use. |
| Google Search or Maps page scraping | Do not proceed for this use without express permission; Maps content must not be used to build the specified lists | Automating collection does not remove the restrictions in Google’s policies and terms. |
Collect only the fields needed to qualify a business
Keep a small, explainable record for each prospect. Useful fields are the business name, service area, services offered, website, published business contact channel, source URL, collection date, last verification date, and suppression status. Add a short inclusion reason, such as “commercial plumber within target area” or “advertises 24/7 emergency service.” That reason makes later review easier and discourages contacting a record just because it exists.
Avoid gathering personal details that are unnecessary for the business purpose. Separate a source’s contact information from your notes about fit, and restrict access to the list to the people who need it. If the source terms require attribution, retention limits, or deletion, record those requirements alongside the source so they are not lost when records are exported.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
A cautious Python pattern for a permitted directory
The example below shows the shape of a small extraction job for a directory that explicitly permits automated collection and the intended reuse. It is not a universal scraper: every directory has different HTML, and the CSS selectors must match that source’s documented or permitted page structure. It deliberately does not target Google Search or Maps.
import csv
from datetime import datetime, timezone
from urllib.parse import urljoin
import requests
from bs4 import BeautifulSoup
# Use only a directory that permits this access and intended reuse.
SOURCE_URL = "https://directory.example/approved-listing-page"
CARD_SELECTOR = ".business-card" # Replace with the permitted source's selector.
NAME_SELECTOR = ".business-name"
WEBSITE_SELECTOR = "a.business-website"
CONTACT_SELECTOR = ".business-contact"
response = requests.get(SOURCE_URL, timeout=20)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
collected_at = datetime.now(timezone.utc).date().isoformat()
with open("plumbing_prospects.csv", "w", newline="", encoding="utf-8") as output:
writer = csv.DictWriter(
output,
fieldnames=["business_name", "website", "published_contact", "source_url", "collected_at"],
)
writer.writeheader()
for card in soup.select(CARD_SELECTOR):
name_node = card.select_one(NAME_SELECTOR)
website_node = card.select_one(WEBSITE_SELECTOR)
contact_node = card.select_one(CONTACT_SELECTOR)
if not name_node:
continue
website = ""
if website_node and website_node.get("href"):
website = urljoin(SOURCE_URL, website_node["href"])
writer.writerow({
"business_name": name_node.get_text(" ", strip=True),
"website": website,
"published_contact": contact_node.get_text(" ", strip=True) if contact_node else "",
"source_url": SOURCE_URL,
"collected_at": collected_at,
})
Install the two libraries in an isolated Python environment with python -m pip install requests beautifulsoup4. Before running, confirm the source permits automated requests, check any stated rate or access limits, and use a page and selectors that the source authorizes. The sample uses a placeholder domain and selectors, so it will not return real prospects until you replace them with a permitted source’s actual page and markup. Do not increase request volume to get around access controls or a block.
This script only collects records; it does not establish that they are accurate, current, or ready to buy. Add verification, deduplication, scoring, and suppression checks before outreach.
Or skip the browser setup
If you already have a permitted business-listing page and want a visual record to help review its layout, ScreenshotNeo can capture a page; it is a screenshot API, not a lead scraper, and it does not grant permission to collect or contact businesses. One GET request returns an image or PDF. See the ScreenshotNeo API documentation.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses report the page verdict and billing status in headers. Its MCP server provides screenshot, page-info, and PDF tools for AI agents. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Those features can help document a page for manual review, but they do not verify lead intent or override the source’s terms.
Sign up for 1,000 free screenshots a month with no card.
Verify records and remove duplicates before scoring
Normalize business names and website domains so the same company listed under slightly different names can be matched. Decide how to handle branches: keep separate locations only if they represent separate service areas or contact points relevant to your campaign. Do not merge distinct businesses merely because they share a phone number or address without checking.
Visit the business website and check whether the published phone or email works. Record when you last verified it and what you checked. A website that loads and a working phone establish contactability, not sales intent. Keep opt-outs in a suppression record so a later import or fresh scrape does not put the same business back into an active campaign.
Recommended Free Tools
Score fit separately from intent
Rank records against a simple, consistent rubric rather than treating every match as equally valuable. Useful dimensions include:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
- Service fit: does the business offer the work you are selling or seeking help with?
- Distance: is it inside the service area or target territory?
- Job alignment: is there a credible connection to the urgency, value, or customer type that matters to you?
- Reachability: is there a current published business contact channel?
- Operational evidence: is there evidence the business is currently operating, rather than only an old directory entry?
- Source confidence: how reliable and recent is the record, independent of whether the business appears interested?
Keep source confidence distinct from buying intent. Google’s distinction between category searches, such as “plumber near me,” and direct searches for a named business illustrates why a broad category match is weaker evidence of intent than a specific business query. A scraped company listing is weaker still: it is a prospecting record, not evidence that the company requested information or is ready to hire.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Contact prospects transparently
Write a short message that identifies your company, explains why you are contacting that particular business, makes one concrete offer, links to a genuine page, and provides a working way to opt out. A useful offer might be a missed-call recovery audit or an emergency-search visibility review, but only make claims you can substantiate. Do not say the recipient requested information or that a lead is ready to hire unless you can prove it.
Contact laws and rules vary by location and channel. For U.S. commercial email, the FTC’s CAN-SPAM rule materials describe a ten-business-day period for honoring opt-outs in the cited rule framework. Treat that as a compliance deadline, not a reason to delay suppression: remove an opted-out address from active sends promptly, and check the rules applicable to your recipient, channel, and jurisdiction. Local requirements may impose additional duties.
Keep lead claims and platform relationships honest
Do not sell or pass Local Services Ads leads to another business; Google’s Local Services Ads rules prohibit that and also prohibit spam calls to competitors. If you manage a client’s Google Business Profile, Google’s third-party policy calls for transparent communication, disclosure of management fees, customer ownership or co-ownership, and a simple way for the client to end access.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Be equally careful when describing the quality of leads you sell or deliver. In 2023, the FTC’s HomeAdvisor enforcement record cited up to $7.2 million in redress and addressed allegations of unsupported claims about lead quality. The FTC’s Samuel Levine described the order as requiring HomeAdvisor to refund home service providers millions of dollars and stop misleading them about lead quality. The practical lesson for a plumbing campaign is to describe exactly what a record represents—such as a verified business contact or a booked estimate—and not imply more than the evidence supports.
Measure outcomes, not scraped-row totals
Track the funnel by source, service type, geography, and message version. At minimum, distinguish:
- Valid business records after deduplication
- Deliverable contacts
- Positive replies
- Booked calls and booked estimates
- Completed jobs and revenue
- Cost per booked job and opt-out rate
Use those results to identify which source and prospect criteria produce useful conversations, then adjust the next collection. Suppress opt-outs and remove stale records according to the source terms and your retention policy. No credible plumbing-specific conversion rate or lead-volume benchmark is established here, so do not use an industry-wide number as a target; calculate performance from your own qualified records and completed jobs.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Troubleshooting common scraping problems
- The script returns no rows: the selectors may not match the page, the listing may be rendered by JavaScript, or the page structure may have changed. Recheck the permitted page markup and selectors. Do not respond by switching to a prohibited source or bypassing access controls.
- The request fails or is blocked: check the URL, network, timeout, and the source’s published access rules. A block is not permission to rotate identities or evade restrictions; pause and ask the source operator about an approved access method.
- The same business appears repeatedly: normalize names and domains, decide whether branches count separately, and manually review ambiguous matches before merging.
- Contacts bounce or numbers are disconnected: treat the record as stale, update its verification date, and stop using invalid contact details. Do not assume that a publicly listed contact remains current.
- A source’s API is reliable but the campaign is not allowed: technical availability does not equal permission for mailing-list or telemarketing use. Recheck the applicable terms and choose a source compatible with the intended outreach.
- Replies are poor despite a large list: revisit target definition, service fit, source confidence, and the relevance of the offer. More records do not compensate for weak qualification.
Frequently Asked Questions
Should I scrape residential addresses to find homeowners who need plumbing work?
A business directory scrape does not establish which homeowners need service. Use a prospecting method with an appropriate legal basis and permissions for the specific audience and contact channel; do not repurpose unrelated personal data.
Can an API response be stored permanently if it came from an official provider?
Not necessarily. Retention depends on that API’s terms and the data type; for Google Places API, the cited documentation identifies place IDs as the indefinite-storage exception.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

