Friday, 30 September 2016

Easy Web Scraping using PHP Simple HTML DOM Parser Library

Easy Web Scraping using PHP Simple HTML DOM Parser Library

Web scraping is only way to get data from website when  website don’t provide API to access it’s data. Web scraping involves following steps to get data:

    Make request to web page
    Parse/Extract data that you want to scrape from website.
    Store data for final output (excel, csv,mysql database etc).

Web scraping can be implemented in any language like PHP, Java, .Net, Python and any language that allows to make web request to get web page content (HTML text) in to variable. In this article I will show you how to use Simple HTML DOM PHP library to do web scraping using PHP.
PHP Simple HTML DOM Parser

Simple HTML DOM is a PHP library to parse data from webpages, in short you can use this library to do web scraping using PHP and even store data to MySQL database.  Simple HTML DOM has following features:

    The parser library is written in PHP 5+
    It requires PHP 5+ to run
    Parser supports invalid HTML parsing.
    It allows to select html tags like Jquery way.
    Supports Xpath and CSS path based web extraction
    Provides both the way – Object oriented way and procedure way to write code

Scrape All Links

<?php
include "simple_html_dom.php";

//create object
$html=new simple_html_dom();

//load specific URL
$html->load_file("http://www.google.com");

// This will Find all links
foreach($html->find('a') as $element)
   echo $element->href . '<br>';

?>

Scrape images

<?php
include "simple_html_dom.php";

//create object
$html=new simple_html_dom();

//load specific url
$html->load_file("http://www.google.com");

// This will Find all links
foreach($html->find('img') as $element)
   echo $element->src . '<br>';

?>

This is just little idea how you can do web scraping using PHP.Keep in mind that Xpath can make your job simple and fast. You can find all methods available in SimpleHTMLDom documentation page.

Source: http://webdata-scraping.com/web-scraping-using-php-simple-html-dom-parser-library/

Tuesday, 20 September 2016

Run Code Template – New Feature Added to Fminer Web Scraping Tool

Run Code Template – New Feature Added to Fminer Web Scraping Tool

Fminer is one of the powerful web scraping software, I already given brief of all the Fminer features in previous post. In this post I am going to introduce one of the interesting feature of fminer which is Run Code Template that is recently added to Fminer, this feature is similar to “Fminer Run Code” action but it’s different in a way you can use it. The Run Code Action you can use inside the data scraping flow and python code get executed when scraper start running.

While Run Code Templates are the saved python code snippets that you can run on the data tables after scraping completes. Assume if you get white space in scraped data then you can easily trim this left and right spaces by just executing “strip_column” template, see the code of that template below.

'''Strip all data of a column in data table
Remove the blank of data in the head and the tail.
'''

tabName = '[%table1|data table%]'
colName = '[%table1.column1|table column for strip%]'

tab = tables[tabName]
for i, row in enumerate(tab):
    row[colName] = row[colName].strip()   
    tab.edit_row(i, row)

This template comes with Fminer and few other template like “merge_tables_with_same_columns”.  Below are the steps how you can execute template python code on scraped data.

Step 1: Click on second icon from right that says “Run Code” under the Data section

Step 2: One popup will appear, you need to click on “Templates” icon and choose the template you want to execute and then click on Ok.

Step 3: Now the window will appear for configuration that will ask you to choose the table and column under that table on which you want to execute the code. Now click on Ok again.

Step 4: Now you can see the code of that template, now you can click on execute icon and script will start running, based on number of records it will take time to finish execution.

In many web scraping projects I found this template code very handy for cleaning data and making life easy. Templates are stored at following path so you can create your own template with customized code.

C:\Program Files (x86)\FMiner\templates

I have created one template which I use to remove HTML code that comes while scraping badly organized HTML pages. Below is the code of template for stripping html:

'''Strip HTML will remove all html tags of a column in data table.
'''
import re
tabName = '[%table1|data table%]'
colName = '[%table1.column1|table column for substring%]'
colNew = '[%table1.column1|table column to add new data%]'
tab = tables[tabName]
for i, row in enumerate(tab):
    cleanr =re.compile('<.*?>')
    cleantext = re.sub(cleanr,'', row[colName])
    row[colNew] = cleantext 
    tab.edit_row(i, row)

Stay connected as I am going to post more code templates that will make your web scraping life easy and manipulate data on fly.

Source: http://webdata-scraping.com/run-code-template-new-feature-added-fminer-web-scraping-tool/

Thursday, 8 September 2016

Calculate your ROI on Web Scraping using our ROI Calculator

Calculate your ROI on Web Scraping using our ROI Calculator

Staying atop the competition is a vital thing for the survival and growth of businesses these days. Ever since big data came into the picture, web scraping has become something businesses from every industry has to invest in. If your company is not in a technically advanced industry, web scraping could even be a nightmare to start with. Wondering if going with in-house web scraping is right for you? In house or outsourcing, in the end it’s all about the returns on investment.

ROI Calculator

Considering the numerous factors that determine how much web scraping can cost you, it’s not easy to calculate the ROI on your in-house web scraping.

In house web scraping is certainly a challenging process. If you plan on going down this way, here is a brief list of prerequisites.

Engineers

Technically skilled labour is an essential requirement for web scraping. Since, web scraping techniques are complicated, it needs good programming skills to write, run and maintain the scraping bots. The cost of labour can be one of the drawbacks with doing in house web scraping.

Hardware Resources

Web scraping is a resource hungry process which requires high end servers and lots of bandwidth. Without the adequate resources, you might end up losing important data. The cost of quality servers could easily make you want to reconsider doing web scraping on your own. Not to mention the doubling up of these resources in order to keep the data intact, espcially if you’re looking at large scale.

Maintainability and ukeep of your tech stack

Once you have your servers and other technical components setup, the real deal only starts. You have to ensure availability of your servers, data backups, restoring previous states, failovers, among many other complications associated with managing servers and fixing them up when something goes wrong. You need to allocate resources (both people and hardware) to take care of the above.

Time

Time is something that we cannot really include in the equation when it comes to calculating the returns. But it is definitely a factor that defines if web scraping in house is worth it. Although web scraping is the fastest way to acquire data, the initial setup and maintenance are time consuming and complicated. This could easily lead to conflicts when you have to distribute your time between web scraping and other business activities that are crucial for your company.

Try the ROI Calculator

We came up with an ROI calculator to easily calculate your returns on investment with our web scraping services. Using this, you could easily compare the cost of in house web scraping with PromptCloud’s dedicated web scraping services. Find out how much you can save by going the PromptCloud way.

Source: https://www.promptcloud.com/blog/calculate-roi-on-web-scraping