Market Research
Gather competitive intelligence, reviews, and market data for research and analysis.
Use Cases
- Competitor Analysis - Track competitor products and pricing
- Review Aggregation - Collect customer feedback across platforms
- Social Media Monitoring - Track brand mentions and sentiment
- Trend Analysis - Identify emerging market trends
Review Aggregation Example
from wrynai import WrynAI, Engine
client = WrynAI(api_key="your_api_key")
reviews = client.scrape(
url="https://trustpilot.com/review/company.com",
list_item={
"selector": "article.review",
"fields": {
"rating": "div.star-rating",
"title": "h2.review-title",
"text": "p.review-text",
"author": "span.author-name",
"date": "time.review-date",
"verified": "span.verified-badge"
}
},
pagination={
"type": "next_button",
"max_pages": 20
}
)
# Analyze sentiment
avg_rating = sum(r['rating'] for r in reviews.data['items']) / len(reviews.data['items'])
print(f"Average rating: {avg_rating}/5")
Competitor Analysis
def competitor_analysis_example():
"""Competitor analysis example (PRO feature)."""
api_key = os.environ.get("WRYNAI_API_KEY", "your-api-key-here")
with WrynAI(api_key=api_key) as client:
print("=" * 60)
print("Competitor Analysis Example (PRO)")
print("=" * 60)
try:
result = client.competitor_analysis(
keywords=[
"web scraping api",
"data extraction service",
"serp api",
],
competitors=[
"scraperapi.com",
"scrapingbee.com",
"brightdata.com",
],
country_code=CountryCode.US,
language="en",
timeout_ms=120000,
)
# Analysis Summary
print("\nAnalysis Summary:")
keywords_analyzed = result.analysis_summary.get("keywords_analyzed", 0)
total_competitors = result.analysis_summary.get(
"total_competitors_found", 0
)
keywords_failed = result.analysis_summary.get("keywords_failed", 0)
print(f" Keywords Analyzed: {keywords_analyzed}")
print(f" Competitors Found: {total_competitors}")
print(f" Keywords Failed: {keywords_failed}")
print()
# Keyword Analysis
print("Keyword Analysis:")
for keyword, analysis in result.keyword_analysis.items():
print(f"\n '{keyword}':")
print(
f" Competitors in Top 10: {analysis.competitor_count_in_top_10}"
)
print(f" SERP Features: {analysis.serp_features}")
if analysis.competitor_rankings:
print(" Competitor Rankings:")
for domain, ranking in analysis.competitor_rankings.items():
print(f" - {domain}: Position {ranking.position}")
# Competitor Insights
if result.competitor_insights.get("top_competitors"):
print("\n\nTop Competitor Insights:")
for competitor in result.competitor_insights["top_competitors"]:
domain = competitor.get("domain", "Unknown")
avg_pos = competitor.get("average_position", "N/A")
total_keywords = competitor.get("total_keywords_ranking", 0)
top_10_rate = competitor.get("top_10_rate", 0)
perf_score = competitor.get("performance_score", 0)
print(f"\n {domain}:")
print(f" Average Position: {avg_pos}")
print(f" Keywords Ranking: {total_keywords}")
print(f" Top 10 Rate: {top_10_rate}%")
print(f" Performance Score: {perf_score}")
# Ranking Opportunities
if result.competitor_insights.get("ranking_opportunities"):
print("\n\nRanking Opportunities:")
for opp in result.competitor_insights["ranking_opportunities"]:
print(f" Keyword: {opp.get('keyword', 'Unknown')}")
print(f" Opportunity: {opp.get('opportunity', 'N/A')}")
print(
f" Potential Gain: {opp.get('potential_gain', 0)} positions"
)
except WrynAIError as e:
print(f"Competitor analysis failed: {e}")