Monday, 30 September 2013

Web Scraper Shortcode WordPress Plugin Review

This short post is on the WP-plugin called Web Scraper Shortcode, that enables one to retrieve a portion of a web page or a whole page and insert it directly into a post. This plugin might be used for getting fresh data or images from web pages for your WordPress driven page without even visiting it. More scraping plugins and sowtware you can find in here.

To install it in WordPress go to Plugins -> Add New.
Usage

The plugin scrapes the page content and applies parameters to this scraped page if specified. To use the plugin just insert the

[web-scraper ]

shortcode into the HTML view of the WordPress page where you want to display the excerpts of a page or the whole page. The parameters are as follows:

    url (self explanatory)
    element – the dom navigation element notation, similar to XPath.
    limit – the maximum number of elements to be scraped and inserted if the element notation points to several of them (like elements of the same class).

The use of the plugin is of the dom (Data Object Model) notation, where consecutive dom nodes are stated like node1.node2; for example: element = ‘div.img’. The specific element scrape goes thru ‘#notation’. Example: if you want to scrape several ‘div’ elements of the class ‘red’ (<div class=’red’>…<div>), you need to specify the element attribute this way: element = ‘div#red’.
How to find DOM notation?

But for inexperienced users, how is it possible to find the dom notation of the desired element(s) from the web page? Web Developer Tools are a handy means for this. I would refer you to this paragraph on how to invoke Web Developer Tools in the browser (Google Chrome) and select a single page element to inspect it. As you select it with the ‘loupe’ tool, on the bottom line you’ll see the blue box with the element’s dom notation:


The plugin content

As one who works with web scraping, I was curious about  the means that the plugin uses for scraping. As I looked at the plugin code, it turned out that the plugin acquires a web page through ‘simple_html_dom‘ class:

    require_once(‘simple_html_dom.php’);
    $html = file_get_html($url);
    then the code performs iterations over the designated elements with the set limit

Pitfalls

    Be careful if you put two or more [web-scraper] shortcodes on your website, since downloading other pages will drastically slow the page load speed. Even if you want only a small element, the PHP engine first loads the whole page and then iterates over its elements.
    You need to remember that many pictures on the web are indicated by shortened URLs. So when such an image gets extracted it might be visible to you in this way: , since the URL is shortened and the plugin does not take note of  its base URL.
    The error “Fatal error: Call to a member function find() on a non-object …” will occur if you put this shortcode in a text-overloaded post.

Summary

I’d recommend using this plugin for short posts to be added with other posts’ elements. The use of this plugin is limited though.



Source: http://extract-web-data.com/web-scraper-shortcode-wordpress-plugin-review/

Sunday, 29 September 2013

Microsys A1 Website Scraper Review

The A1 scraper by Microsys is a program that is mainly used to scrape websites to extract data in large quantities for later use in webservices. The scraper works to extract text, URLs etc., using multiple Regexes and saving the output into a CSV file. This tool is can be compared with other web harvesting and web scraping services.
How it works
This scraper program works as follows:
Scan mode

    Go to the ScanWebsite tab and enter the site’s URL into the Path subtab.
    Press the ‘Start scan‘ button to cause the crawler to find text, links and other data on this website and cache them.

Important: URLs that you scrape data from have to pass filters defined in both analysis filters and output filters. The defining of those filters can be set at the Analysis filters and Output filters subtabs respectively. They must be set at the website analysis stage (mode).
Extract mode

    Go to the Scraper Options tab
    Enter the Regex(es) into the Regex input area.
    Define the name and path of the output CSV file.
    The scraper automatically finds and extracts the data according to Regex patterns.

The result will be stored in one CSV file for all the given URLs.

There is a need to mention that the set of regular expressions will be run against all the pages scraped.
Some more scraper features

Using the scraper as a website crawler also affords:

    URL filtering.
    Adjustment of the speed of crawling according to service needs rather than server load.

If  you need to extract data from a complex website, just disable Easy mode: out press the  button. A1 Scraper’s full tutorial is available here.
Conclusion

The A1 Scraper is good for mass gathering of URLs, text, etc., with multiple conditions set. However this scraping tool is designed for using only Regex expressions, which can increase the parsing process time greatly.



Source: http://extract-web-data.com/microsys-a1-website-scraper-review/

Friday, 27 September 2013

Visual Web Ripper: Using External Input Data Sources

Sometimes it is necessary to use external data sources to provide parameters for the scraping process. For example, you have a database with a bunch of ASINs and you need to scrape all product information for each one of them. As far as Visual Web Ripper is concerned, an input data source can be used to provide a list of input values to a data extraction project. A data extraction project will be run once for each row of input values.

An input data source is normally used in one of these scenarios:

    To provide a list of input values for a web form
    To provide a list of start URLs
    To provide input values for Fixed Value elements
    To provide input values for scripts

Visual Web Ripper supports the following input data sources:

    SQL Server Database
    MySQL Database
    OleDB Database
    CSV File
    Script (A script can be used to provide data from almost any data source)

To see it in action you can download a sample project that uses an input CSV file with Amazon ASIN codes to generate Amazon start URLs and extract some product data. Place both the project file and the input CSV file in the default Visual Web Ripper project folder (My Documents\Visual Web Ripper\Projects).

For further information please look at the manual topic, explaining how to use an input data source to generate start URLs.


Source: http://extract-web-data.com/visual-web-ripper-using-external-input-data-sources/

Thursday, 26 September 2013

Scraping Amazon.com with Screen Scraper

Let’s look how to use Screen Scraper for scraping Amazon products having a list of asins in external database.

Screen Scraper is designed to be interoperable with all sorts of databases and web-languages. There is even a data-manager that allows one to make a connection to a database (MySQL, Amazon RDS, MS SQL, MariaDB, PostgreSQL, etc), and then the scripting in screen-scraper is agnostic to the type of database.

Let’s go through a sample scrape project you can see it at work. I don’t know how well you know Screen Scraper, but I assume you have it installed, and a MySQL database you can use. You need to:

    Make sure screen-scraper is not running as workbench or server
    Put the Amazon (Scraping Session).sss file in the “screen-scraper enterprise edition/import” directory.
    Put the mysql-connector-java-5.1.22-bin.jar file in the “screen-scraper enterprise edition/lib/ext” directory.
    Create a MySQL database for the scrape to use, and import the amazon.sql file.
    Put the amazon.db.config file in the “screen-scraper enterprise edition/input” directory and edit it to contain proper settings to connect to your database.
    Start the screen scraper workbench

Since this is a very simple scrape, you just want to run it in the workbench (most of the time you want to run scrapes in server mode). Start the workbench, and you will see the Amazon scrape in there, and you can just click the “play” button.

Note that a breakpoint comes up for each item. It would be easy to save the scraped details to a database table or file if you want. Also see in the database the “id_status” changes as each item is scraped.

When the scrape is run, it looks in the database for products marked “not scraped”, so when you want to re-run the scrapes, you need to:

UPDATE asin
SET `id_status` = 0

Have a nice scraping! ))

P.S. We thank Jason Bellows from Ekiwi, LLC for such a great tutorial.


Source: http://extract-web-data.com/scraping-amazon-com-with-screen-scraper/

Tuesday, 24 September 2013

Selenium IDE and Web Scraping

Selenium is a browser automation framework that includes IDE, Remote Control server and bindings of various flavors including Java, .Net, Ruby, Python and other. In this post we touch on the basic structure of the framework and its application to  Web Scraping.
What is Selenium IDE


Selenium IDE is an integrated development environment for Selenium scripts. It is implemented as a Firefox plugin, and it allows recording browsers’ interactions in order to edit them. This works well for software tests, composing and debugging. The Selenium Remote Control is a server specific for a particular environment; it causes custom scripts to be implemented for controlled browsers. Selenium deploys on Windows, Linux, and iOS. How various Selenium components are supported with major browsers read here.
What does Selenium do and Web Scraping

Basically Selenium automates browsers. This ability is no doubt to be applied to web scraping. Since browsers (and Selenium) support JavaScript, jQuery and other methods working with dynamic content why not use this mix for benefit in web scraping, rather than to try to catch Ajax events with plain code? The second reason for this kind of scrape automation is browser-fasion data access (though today this is emulated with most libraries).

Yes, Selenium works to automate browsers, but how to control Selenium from a custom script to automate a browser for web scraping? There are Selenium PHP and other language libraries (bindings) providing for scripts to call and use Selenium. It is possible to write Selenium clients (using the libraries) in almost any language we prefer, for example Perl, Python, Java, PHP etc. Those libraries (API), along with a server, the Java written server that invokes browsers for actions, constitute the Selenum RC (Remote Control). Remote Control automatically loads the Selenium Core into the browser to control it. For more details in Selenium components refer to here.



A tough scrape task for programmer

“…cURL is good, but it is very basic.  I need to handle everything manually; I am creating HTTP requests by hand.
This gets difficult – I need to do a lot of work to make sure that the requests that I send are exactly the same as the requests that a browser would
send, both for my sake and for the website’s sake. (For my sake
because I want to get the right data, and for the website’s sake
because I don’t want to cause error messages or other problems on their site because I sent a bad request that messed with their web application).  And if there is any important javascript, I need to imitate it with PHP.
It would be a great benefit to me to be able to control a browser like Firefox with my code. It would solve all my problems regarding the emulation of a real browser…
it seems that Selenium will allow me to do this…” -Ryan S

Yes, that’s what we will consider below.
Scrape with Selenium

In order to create scripts that interact with the Selenium Server (Selenium RC, Selenium Remote Webdriver) or create local Selenium WebDriver script, there is the need to make use of language-specific client drivers (also called Formatters, they are included in the selenium-ide-1.10.0.xpi package). The Selenium servers, drivers and bindings are available at Selenium download page.
The basic recipe for scrape with Selenium:

    Use Chrome or Firefox browsers
    Get Firebug or Chrome Dev Tools (Cntl+Shift+I) in action.
    Install requirements (Remote control or WebDriver, libraries and other)
    Selenium IDE : Record a ‘test’ run thru a site, adding some assertions.
    Export as a Python (other language) script.
    Edit it (loops, data extraction, db input/output)
    Run script for the Remote Control

The short intro Slides for the scraping of tough websites with Python & Selenium are here (as Google Docs slides) and here (Slide Share).
Selenium components for Firefox installation guide

For how to install the Selenium IDE to Firefox see  here starting at slide 21. The Selenium Core and Remote Control installation instructions are there too.
Extracting for dynamic content using jQuery/JavaScript with Selenium

One programmer is doing a similar thing …

1. launch a selenium RC (remote control) server
2. load a page
3. inject the jQuery script
4. select the interested contents using jQuery/JavaScript
5. send back to the PHP client using JSON.

He particularly finds it quite easy and convenient to use jQuery for
screen scraping, rather than using PHP/XPath.
Conclusion

The Selenium IDE is the popular tool for browser automation, mostly for its software testing application, yet also in that Web Scraping techniques for tough dynamic websites may be implemented with IDE along with the Selenium Remote Control server. These are the basic steps for it:

    Record the ‘test‘ browser behavior in IDE and export it as the custom programming language script
    Formatted language script runs on the Remote Control server that forces browser to send HTTP requests and then script catches the Ajax powered responses to extract content.

Selenium based Web Scraping is an easy task for small scale projects, but it consumes a lot of memory resources, since for each request it will launch a new browser instance.



Source: http://extract-web-data.com/selenium-ide-and-web-scraping/

Monday, 23 September 2013

Things You Should Know about Data Mining or Data Capturing

The World Wide Web is a portal containing billions of quality information, spanning resources from around the globe. Through the years, the internet has developed into a competitive business environment which offers advertising, promotions, sales and marketing innovations that has rapidly created a following with most websites, and gave birth to online business transactions and unprecedented financial growth.

Data mining comes into the picture in quite an obscure procedure. Most companies utilize data entry level workers to edit or create listings for the items they promote or sell online. Data mining is that early stage prior to the data entry work which utilizes available resources online to gather bits and pieces of information relevant to the business or website they are categorizing.

In a certain point of view, data mining holds a great deal of importance, as the primary keeper of the quality of the items being listed by the data entry personnel as filtered through the stages under data mining and data capturing.

As mentioned earlier, data mining is a very obscure procedure. The reason for my saying this is because of the fact that certain restrictions or policies are enforced by websites or business institutions particularly on the quality of data capturing, which may seem too time-consuming, meticulous and stringent.

These methodologies are but without explanation as well. As only the most qualified resources bearing the most relevant information can be posted online. Many data mining personnel can only produce satisfactory work on the data entry levels, after enhancing the quality of output from the data mining or data capturing stage.

Data mining includes two common strategies. The first one would be a strategy based on manual labor and data checking, with the use of online or local manual tools and scripts to gather the right information. The second would be through the use of web crawlers or robots to perform the task of checking for information on various websites automatically. The second stage offers a faster method for gathering and listing information.

But often-times the procedure spit out very garbled data, often confusing personnel more than helping.

Data mining is a highly exhaustive activity, often expending more effort, time and money than other types of work. Leveling them out, local data mining is a sure fire method to gain rapid listings of information, as collected by the information miners.

Steve Arun is an Internet Marketing, Client Account Specialist for KPOWEB, an Offshore Outsourcing Consulting company provides virtual dedicated staffing to small business. Go now to KPOWEB Offshore Outsourcing Services, the IT outsourcing people, to access their affordable “Virtual IT Staffing Solution” to find efficient dedicated team that fit your business needs.



Source: http://ezinearticles.com/?Things-You-Should-Know-about-Data-Mining-or-Data-Capturing&id=256125

Sunday, 22 September 2013

Data Mining in the 21st Century: Business Intelligence Solutions Extract and Visualize

When you think of the term data mining, what comes to mind? If an image of a mine shaft and miners digging for diamonds or gold comes to mind, you're on the right track. Data mining involves digging for gems or nuggets of information buried deep within data. While the miners of yesteryear used manual labor, modern data minors use business intelligence solutions to extract and make sense of data.

As businesses have become more complex and more reliant on data, the sheer volume of data has exploded. The term "big data" is used to describe the massive amounts of data enterprises must dig through in order to find those golden nuggets. For example, imagine a large retailer with numerous sales promotions, inventory, point of sale systems, and a gift registry. Each of these systems contains useful data that could be mined to make smarter decisions. However, these systems may not be interlinked, making it more difficult to glean any meaningful insights.

Data warehouses are used to extract information from various legacy systems, transform the data into a common format, and load it into a data warehouse. This process is known as ETL (Extract, Transform, and Load). Once the information is standardized and merged, it becomes possible to work with that data.

Originally, all of this behind-the-scenes consolidation took place at predetermined intervals such as once a day, once a week, or even once a month. Intervals were often needed because the databases needed to be offline during these processes. A business running 24/7 simply couldn't afford the down time required to keep the data warehouse stocked with the freshest data. Depending on how often this process took place, the data could be old and no longer relevant. While this may have been fine in the 1980s or 1990s, it's not sufficient in today's fast-paced, interconnected world.

Real-time EFL has since been developed, allowing for continuous, non-invasive data warehousing. While most business intelligence solutions today are capable of mining, extracting, transforming, and loading data continuously without service disruptions, that's not the end of the story. In fact, data mining is just the beginning.

After mining data, what are you going to do with it? You need some form of enterprise reporting in order to make sense of the massive amounts of data coming in. In the past, enterprise reporting required extensive expertise to set up and maintain. Users were typically given a selection of pre-designed reports detailing various data points or functions. While some reports may have had some customization built in, such as user-defined date ranges, customization was limited. If a user needed a special report, it required getting someone from the IT department skilled in reporting to create or modify a report based on the user's needs. This could take weeks - and it often never happened due to the hassles and politics involved.

Fortunately, modern business intelligence solutions have taken enterprise reporting down to the user level. Intuitive controls and dashboards make creating a custom report a simple matter of drag and drop while data visualization tools make the data easy to comprehend. Best of all, these tools can be used on demand, allowing for true, real-time ad hoc enterprise reporting.

Frank Poladi is the author of this article about data mining in the 21st century. In this article he gives his readers insight on the world of data mining and using it with business intelligence solutions. He notes that to make sense of all this data enterprise reporting is a major factor as well.




Source: http://ezinearticles.com/?Data-Mining-in-the-21st-Century:-Business-Intelligence-Solutions-Extract-and-Visualize&id=7504537