firmoscope 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,146 @@
1
+ Metadata-Version: 2.4
2
+ Name: firmoscope
3
+ Version: 0.1.0
4
+ Summary: Business lead scraper CLI powered by Playwright
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: playwright
8
+
9
+ # 🔍 Firmoscope
10
+
11
+ > **Business lead scraper CLI powered by Playwright — free, fast, and runs entirely locally.**
12
+
13
+ Made by [KPZsProductions](https://github.com/KPZsProductions)
14
+
15
+ ---
16
+
17
+ ## What it does
18
+
19
+ Firmoscope searches Google Maps for businesses matching your query, then extracts contact details — phone numbers, email addresses, websites, and addresses — and saves them to a CSV file. Optionally filters to businesses **without a website** (prime leads), queries an AI model to analyse results, or exports directly to Google Sheets.
20
+
21
+ ---
22
+
23
+ ## Installation
24
+
25
+ ### Option 1 — pipx (recommended)
26
+
27
+ ```bash
28
+ pipx install firmoscope
29
+ playwright install chromium
30
+ firmoscope "Rybnik Mechanicy"
31
+ ```
32
+
33
+ > Install pipx first if needed: `pip install pipx`
34
+
35
+ ### Option 2 — pip
36
+
37
+ ```bash
38
+ pip install firmoscope
39
+ playwright install chromium
40
+ firmoscope "Rybnik Mechanicy"
41
+ ```
42
+
43
+ ### Option 3 — manual (no install)
44
+
45
+ ```bash
46
+ pip install playwright
47
+ playwright install chromium
48
+ python firmoscope.py
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Quick start
54
+
55
+ ```bash
56
+ # Run interactively
57
+ firmoscope
58
+
59
+ # Run interactively (manual install)
60
+ python firmoscope.py
61
+
62
+ # Run with arguments
63
+ firmoscope "Rybnik Mechanicy"
64
+ firmoscope "Katowice Restauracje" --limit 30
65
+ firmoscope "Gliwice Dentyści" --limit 50 --output leady_dent.csv
66
+
67
+ # Only businesses without a website (best leads)
68
+ firmoscope "Wrocław Hydraulicy" --no-website
69
+
70
+ # Watch the browser (non-headless)
71
+ firmoscope "KrakĂłw Fryzjer" --no-headless
72
+ ```
73
+
74
+ ---
75
+
76
+ ## AI mode
77
+
78
+ Requires `OPENROUTER_API_KEY` set in your environment.
79
+
80
+ ```bash
81
+ # One-shot AI question about the results
82
+ firmoscope "Rybnik Mechanicy" --limit 10 --ai "ktĂłre firmy nie majÄ… strony?"
83
+
84
+ # Interactive chat session
85
+ firmoscope "Rybnik Mechanicy" --limit 10 --chat
86
+
87
+ # Pick a specific model
88
+ firmoscope "Rybnik Mechanicy" --chat --model "anthropic/claude-3.5-haiku"
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Output
94
+
95
+ CSV file with UTF-8-BOM encoding (opens cleanly in Excel/LibreOffice):
96
+
97
+ | Column | Description |
98
+ |---|---|
99
+ | `Nazwa` | Business name |
100
+ | `Telefon` | Phone number |
101
+ | `Email` | Email address |
102
+ | `Adres` | Street address |
103
+ | `Strona WWW` | Website URL |
104
+ | `Ma stronÄ™` | Has website (Tak/Nie) |
105
+ | `Link Google Maps` | Direct Google Maps link |
106
+
107
+ ---
108
+
109
+ ## How it works
110
+
111
+ ```
112
+ main()
113
+ └─ run_scraper() — opens Google Maps, scrolls feed, collects place links
114
+ └─ scrape_business_details() — extracts phone, address, website, email per place
115
+ └─ try_scrape_website_for_email() — if no email on Maps, checks /kontakt etc.
116
+ ```
117
+
118
+ - Browser runs with Polish locale (`pl-PL`) and a real Chrome user-agent
119
+ - No paid APIs — pure Playwright scraping
120
+ - Zero external dependencies beyond `playwright` (and optionally `prompt_toolkit`)
121
+
122
+ ---
123
+
124
+ ## Requirements
125
+
126
+ - Python 3.9+
127
+ - `playwright` — `pip install playwright && playwright install chromium`
128
+ - `prompt_toolkit` *(optional)* — autocomplete in interactive mode
129
+ - `OPENROUTER_API_KEY` *(optional)* — AI analysis features
130
+
131
+ ---
132
+
133
+ ## Legal Notice
134
+
135
+ > **This tool is provided for educational and legitimate business research purposes only.**
136
+
137
+ - Firmoscope scrapes publicly visible information from Google Maps. Use of this tool must comply with [Google's Terms of Service](https://policies.google.com/terms) and any applicable local laws and regulations.
138
+ - The authors and contributors of this project **do not condone** the use of this software for spam, harassment, unsolicited marketing, or any activity that violates the privacy rights of individuals or organisations.
139
+ - Data collected through this tool may be subject to data protection regulations (e.g. GDPR in the European Union). You are solely responsible for how you store, process, and use any data you collect.
140
+ - **Use at your own risk.** The authors accept no liability for misuse of this software or for any consequences arising from its use.
141
+
142
+ ---
143
+
144
+ <p align="center">
145
+ Built with ❤️ by <a href="https://github.com/KPZsProductions">KPZsProductions</a>
146
+ </p>
@@ -0,0 +1,138 @@
1
+ # 🔍 Firmoscope
2
+
3
+ > **Business lead scraper CLI powered by Playwright — free, fast, and runs entirely locally.**
4
+
5
+ Made by [KPZsProductions](https://github.com/KPZsProductions)
6
+
7
+ ---
8
+
9
+ ## What it does
10
+
11
+ Firmoscope searches Google Maps for businesses matching your query, then extracts contact details — phone numbers, email addresses, websites, and addresses — and saves them to a CSV file. Optionally filters to businesses **without a website** (prime leads), queries an AI model to analyse results, or exports directly to Google Sheets.
12
+
13
+ ---
14
+
15
+ ## Installation
16
+
17
+ ### Option 1 — pipx (recommended)
18
+
19
+ ```bash
20
+ pipx install firmoscope
21
+ playwright install chromium
22
+ firmoscope "Rybnik Mechanicy"
23
+ ```
24
+
25
+ > Install pipx first if needed: `pip install pipx`
26
+
27
+ ### Option 2 — pip
28
+
29
+ ```bash
30
+ pip install firmoscope
31
+ playwright install chromium
32
+ firmoscope "Rybnik Mechanicy"
33
+ ```
34
+
35
+ ### Option 3 — manual (no install)
36
+
37
+ ```bash
38
+ pip install playwright
39
+ playwright install chromium
40
+ python firmoscope.py
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Quick start
46
+
47
+ ```bash
48
+ # Run interactively
49
+ firmoscope
50
+
51
+ # Run interactively (manual install)
52
+ python firmoscope.py
53
+
54
+ # Run with arguments
55
+ firmoscope "Rybnik Mechanicy"
56
+ firmoscope "Katowice Restauracje" --limit 30
57
+ firmoscope "Gliwice Dentyści" --limit 50 --output leady_dent.csv
58
+
59
+ # Only businesses without a website (best leads)
60
+ firmoscope "Wrocław Hydraulicy" --no-website
61
+
62
+ # Watch the browser (non-headless)
63
+ firmoscope "KrakĂłw Fryzjer" --no-headless
64
+ ```
65
+
66
+ ---
67
+
68
+ ## AI mode
69
+
70
+ Requires `OPENROUTER_API_KEY` set in your environment.
71
+
72
+ ```bash
73
+ # One-shot AI question about the results
74
+ firmoscope "Rybnik Mechanicy" --limit 10 --ai "ktĂłre firmy nie majÄ… strony?"
75
+
76
+ # Interactive chat session
77
+ firmoscope "Rybnik Mechanicy" --limit 10 --chat
78
+
79
+ # Pick a specific model
80
+ firmoscope "Rybnik Mechanicy" --chat --model "anthropic/claude-3.5-haiku"
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Output
86
+
87
+ CSV file with UTF-8-BOM encoding (opens cleanly in Excel/LibreOffice):
88
+
89
+ | Column | Description |
90
+ |---|---|
91
+ | `Nazwa` | Business name |
92
+ | `Telefon` | Phone number |
93
+ | `Email` | Email address |
94
+ | `Adres` | Street address |
95
+ | `Strona WWW` | Website URL |
96
+ | `Ma stronÄ™` | Has website (Tak/Nie) |
97
+ | `Link Google Maps` | Direct Google Maps link |
98
+
99
+ ---
100
+
101
+ ## How it works
102
+
103
+ ```
104
+ main()
105
+ └─ run_scraper() — opens Google Maps, scrolls feed, collects place links
106
+ └─ scrape_business_details() — extracts phone, address, website, email per place
107
+ └─ try_scrape_website_for_email() — if no email on Maps, checks /kontakt etc.
108
+ ```
109
+
110
+ - Browser runs with Polish locale (`pl-PL`) and a real Chrome user-agent
111
+ - No paid APIs — pure Playwright scraping
112
+ - Zero external dependencies beyond `playwright` (and optionally `prompt_toolkit`)
113
+
114
+ ---
115
+
116
+ ## Requirements
117
+
118
+ - Python 3.9+
119
+ - `playwright` — `pip install playwright && playwright install chromium`
120
+ - `prompt_toolkit` *(optional)* — autocomplete in interactive mode
121
+ - `OPENROUTER_API_KEY` *(optional)* — AI analysis features
122
+
123
+ ---
124
+
125
+ ## Legal Notice
126
+
127
+ > **This tool is provided for educational and legitimate business research purposes only.**
128
+
129
+ - Firmoscope scrapes publicly visible information from Google Maps. Use of this tool must comply with [Google's Terms of Service](https://policies.google.com/terms) and any applicable local laws and regulations.
130
+ - The authors and contributors of this project **do not condone** the use of this software for spam, harassment, unsolicited marketing, or any activity that violates the privacy rights of individuals or organisations.
131
+ - Data collected through this tool may be subject to data protection regulations (e.g. GDPR in the European Union). You are solely responsible for how you store, process, and use any data you collect.
132
+ - **Use at your own risk.** The authors accept no liability for misuse of this software or for any consequences arising from its use.
133
+
134
+ ---
135
+
136
+ <p align="center">
137
+ Built with ❤️ by <a href="https://github.com/KPZsProductions">KPZsProductions</a>
138
+ </p>
@@ -0,0 +1,146 @@
1
+ Metadata-Version: 2.4
2
+ Name: firmoscope
3
+ Version: 0.1.0
4
+ Summary: Business lead scraper CLI powered by Playwright
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: playwright
8
+
9
+ # 🔍 Firmoscope
10
+
11
+ > **Business lead scraper CLI powered by Playwright — free, fast, and runs entirely locally.**
12
+
13
+ Made by [KPZsProductions](https://github.com/KPZsProductions)
14
+
15
+ ---
16
+
17
+ ## What it does
18
+
19
+ Firmoscope searches Google Maps for businesses matching your query, then extracts contact details — phone numbers, email addresses, websites, and addresses — and saves them to a CSV file. Optionally filters to businesses **without a website** (prime leads), queries an AI model to analyse results, or exports directly to Google Sheets.
20
+
21
+ ---
22
+
23
+ ## Installation
24
+
25
+ ### Option 1 — pipx (recommended)
26
+
27
+ ```bash
28
+ pipx install firmoscope
29
+ playwright install chromium
30
+ firmoscope "Rybnik Mechanicy"
31
+ ```
32
+
33
+ > Install pipx first if needed: `pip install pipx`
34
+
35
+ ### Option 2 — pip
36
+
37
+ ```bash
38
+ pip install firmoscope
39
+ playwright install chromium
40
+ firmoscope "Rybnik Mechanicy"
41
+ ```
42
+
43
+ ### Option 3 — manual (no install)
44
+
45
+ ```bash
46
+ pip install playwright
47
+ playwright install chromium
48
+ python firmoscope.py
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Quick start
54
+
55
+ ```bash
56
+ # Run interactively
57
+ firmoscope
58
+
59
+ # Run interactively (manual install)
60
+ python firmoscope.py
61
+
62
+ # Run with arguments
63
+ firmoscope "Rybnik Mechanicy"
64
+ firmoscope "Katowice Restauracje" --limit 30
65
+ firmoscope "Gliwice Dentyści" --limit 50 --output leady_dent.csv
66
+
67
+ # Only businesses without a website (best leads)
68
+ firmoscope "Wrocław Hydraulicy" --no-website
69
+
70
+ # Watch the browser (non-headless)
71
+ firmoscope "KrakĂłw Fryzjer" --no-headless
72
+ ```
73
+
74
+ ---
75
+
76
+ ## AI mode
77
+
78
+ Requires `OPENROUTER_API_KEY` set in your environment.
79
+
80
+ ```bash
81
+ # One-shot AI question about the results
82
+ firmoscope "Rybnik Mechanicy" --limit 10 --ai "ktĂłre firmy nie majÄ… strony?"
83
+
84
+ # Interactive chat session
85
+ firmoscope "Rybnik Mechanicy" --limit 10 --chat
86
+
87
+ # Pick a specific model
88
+ firmoscope "Rybnik Mechanicy" --chat --model "anthropic/claude-3.5-haiku"
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Output
94
+
95
+ CSV file with UTF-8-BOM encoding (opens cleanly in Excel/LibreOffice):
96
+
97
+ | Column | Description |
98
+ |---|---|
99
+ | `Nazwa` | Business name |
100
+ | `Telefon` | Phone number |
101
+ | `Email` | Email address |
102
+ | `Adres` | Street address |
103
+ | `Strona WWW` | Website URL |
104
+ | `Ma stronÄ™` | Has website (Tak/Nie) |
105
+ | `Link Google Maps` | Direct Google Maps link |
106
+
107
+ ---
108
+
109
+ ## How it works
110
+
111
+ ```
112
+ main()
113
+ └─ run_scraper() — opens Google Maps, scrolls feed, collects place links
114
+ └─ scrape_business_details() — extracts phone, address, website, email per place
115
+ └─ try_scrape_website_for_email() — if no email on Maps, checks /kontakt etc.
116
+ ```
117
+
118
+ - Browser runs with Polish locale (`pl-PL`) and a real Chrome user-agent
119
+ - No paid APIs — pure Playwright scraping
120
+ - Zero external dependencies beyond `playwright` (and optionally `prompt_toolkit`)
121
+
122
+ ---
123
+
124
+ ## Requirements
125
+
126
+ - Python 3.9+
127
+ - `playwright` — `pip install playwright && playwright install chromium`
128
+ - `prompt_toolkit` *(optional)* — autocomplete in interactive mode
129
+ - `OPENROUTER_API_KEY` *(optional)* — AI analysis features
130
+
131
+ ---
132
+
133
+ ## Legal Notice
134
+
135
+ > **This tool is provided for educational and legitimate business research purposes only.**
136
+
137
+ - Firmoscope scrapes publicly visible information from Google Maps. Use of this tool must comply with [Google's Terms of Service](https://policies.google.com/terms) and any applicable local laws and regulations.
138
+ - The authors and contributors of this project **do not condone** the use of this software for spam, harassment, unsolicited marketing, or any activity that violates the privacy rights of individuals or organisations.
139
+ - Data collected through this tool may be subject to data protection regulations (e.g. GDPR in the European Union). You are solely responsible for how you store, process, and use any data you collect.
140
+ - **Use at your own risk.** The authors accept no liability for misuse of this software or for any consequences arising from its use.
141
+
142
+ ---
143
+
144
+ <p align="center">
145
+ Built with ❤️ by <a href="https://github.com/KPZsProductions">KPZsProductions</a>
146
+ </p>
@@ -0,0 +1,8 @@
1
+ README.md
2
+ pyproject.toml
3
+ firmoscope.egg-info/PKG-INFO
4
+ firmoscope.egg-info/SOURCES.txt
5
+ firmoscope.egg-info/dependency_links.txt
6
+ firmoscope.egg-info/entry_points.txt
7
+ firmoscope.egg-info/requires.txt
8
+ firmoscope.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ firmoscope = firmoscope:main
@@ -0,0 +1 @@
1
+ playwright
@@ -0,0 +1,18 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "firmoscope"
7
+ version = "0.1.0"
8
+ description = "Business lead scraper CLI powered by Playwright"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ dependencies = ["playwright"]
12
+
13
+ [project.scripts]
14
+ firmoscope = "firmoscope:main"
15
+
16
+ [tool.setuptools.packages.find]
17
+ where = ["."]
18
+ include = ["firmoscope*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+