<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tayyab Javed</title>
    <description>The latest articles on DEV Community by Tayyab Javed (@muhammed_javed_35e74b1c51).</description>
    <link>https://dev.to/muhammed_javed_35e74b1c51</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1742941%2F540a986c-c295-4f9c-a638-4654ae4dc3be.jpg</url>
      <title>DEV Community: Tayyab Javed</title>
      <link>https://dev.to/muhammed_javed_35e74b1c51</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhammed_javed_35e74b1c51"/>
    <language>en</language>
    <item>
      <title>Scrape Phone Plans</title>
      <dc:creator>Tayyab Javed</dc:creator>
      <pubDate>Sun, 29 Dec 2024 23:22:24 +0000</pubDate>
      <link>https://dev.to/muhammed_javed_35e74b1c51/scrape-phone-plans-51em</link>
      <guid>https://dev.to/muhammed_javed_35e74b1c51/scrape-phone-plans-51em</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/brightdata"&gt;Bright Data Web Scraping Challenge&lt;/a&gt;: Scrape Data from Complex, Interactive Websites&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I developed a script to extract Mobile Phone plans from Carphone warehouse, i grabbed data such as Phone, their Colors and capacities available, I stored this data in s3 and displayed it using my Laravel project.&lt;/p&gt;

&lt;p&gt;I used Bright Data's Browser to avoid any blocks, as telecommunication websites typically block after a certain time.&lt;/p&gt;

&lt;p&gt;To extract the data, i had to make use of clicking to open the next page of results, interacting with the page, i found Bright Data's speed and stability very good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://scraperbrightdatachallenge.phase2.maeplet.com/" rel="noopener noreferrer"&gt;View Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn98vxzvgvm7yi8ayqpb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn98vxzvgvm7yi8ayqpb.png" alt="Home page" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbd1d1h6e8ot54yrfe4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbd1d1h6e8ot54yrfe4w.png" alt="Mobile plans" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Bright Data
&lt;/h2&gt;

&lt;p&gt;I used Bright Data scraping browser tool, which was really helpful to enable my own code to be lightweight, since i packaged the script within docker, i did not have to include my own browser, in addition it is nice knowing i have captcha handling and proxies built in.&lt;/p&gt;

&lt;p&gt;I encountered a challenge with being limited to navigating only once per session. I resolved this by requesting a new session for each page navigation. While the solution was straightforward, it did require some restructuring of the code.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Microsomes" rel="noopener noreferrer"&gt;
        Microsomes
      &lt;/a&gt; / &lt;a href="https://github.com/Microsomes/BrandComplianceMVP" rel="noopener noreferrer"&gt;
        BrandComplianceMVP
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Brand Compliance App
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;BrightData Challenge - Monthly Phone Plans Aggregator&lt;/p&gt;
&lt;p&gt;This project is part of the BrightData Web Scraper Challenge, aiming to aggregate monthly phone plans from Carphone Warehouse, including plans from Vodafone and ID Mobile. The goal is to efficiently scrape detailed data and present it in a user-friendly format
🚀 Challenge Prompt&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Use a Web Scraper API to tackle common business challenges like aggregating product prices, monitoring competitors, or collecting reviews across platforms. Use Bright Data’s Web Scraper API for efficient and scalable data collection
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;🌟 Project Overview
Objective&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Scrape and aggregate Carphone Warehouse's monthly phone plans.
Collect details such as:
    Phone models
    Storage capacities
    Available colors
    Associated monthly plans
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Solution Highlights&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Scrape the entire selection of phones and plans available on Carphone Warehouse.
Schedule scraping jobs to run daily or weekly to save costs and keep data fresh.
Use Bright Data’s browser-based scraper to bypass blocking mechanisms.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;🛠️ Technologies Used…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Microsomes/BrandComplianceMVP" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Summary&lt;br&gt;
I thank Bright Data for the motivation to finally explore Bright Data, it was a pleasure and i hope to continue using it in the near future!&lt;/p&gt;

</description>
      <category>brightdatachallenge</category>
      <category>devchallenge</category>
      <category>webdev</category>
      <category>api</category>
    </item>
  </channel>
</rss>
