Metadata-Version: 2.1
Name: fluffypancakes
Version: 0.0.24
Summary: Detect Phishing Websites using Machine Learning
Home-page: https://github.com/suhasrsharma/FluffyPancakes
License: UNKNOWN
Keywords: web-phishing-detection machine-learning
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Requires-Dist: beautifulsoup4 (>=4.9.0)
Requires-Dist: bs4 (>=0.0.1)
Requires-Dist: numpy (>=1.18.2)
Requires-Dist: pandas (>=1.0.4)
Requires-Dist: python-whois (>=0.7.2)
Requires-Dist: requests (>=2.23.0)
Requires-Dist: scikit-learn (>=0.21.3)
Requires-Dist: selenium (>=3.141.0)
Requires-Dist: sklearn (>=0.0)
Requires-Dist: tqdm (>=4.46.0)
Requires-Dist: urllib3 (>=1.25.8)
Provides-Extra: dev
Requires-Dist: pytest (>=3.7) ; extra == 'dev'
Requires-Dist: twine (>=3.1.1) ; extra == 'dev'

# Fluffy Pancakes

Fluffy Pancakes is a library designed to detect phishing websites. It uses Machine Learning to predict the output with an accuracy of 95.2%. 

*Note: Please bear with us for a few seconds to get the output since the library is computationally intensive. We felt bad for making you wait, so we have included a progress bar that you can enable to see the percentage of progress and also see the time taken for execution. Also note that the library heavily depends on a stable internet connection to function its best and to obtain the results. So, the quicker your internet connection is, the faster your results will be :).*


# Usage

- #### Install the module
    ```sh
     $ pip install fluffypancakes
    ```

- #### Import 
    ```py
     $ import fluffypancakes
     ```

- #### Call the function and Pass the URL 
    ```py
     $ result = fluffypancakes.serve('<website URL>', progressBar=True)
     $ print(result)
     ```

- #### Defaults
     The default value of the progressBar is 'True'. However, the option can be enabled or disabled with *boolean* 'True' or 'False' respectively.


# Output
> -1 : Legitimate Website

> 1 : Phishing Website


The output is predicted with an accuracy of 95.2%. It is not a definitive classification. 

# Dependencies

Python dependencies:

- beautifulsoup4>=4.9.0
- numpy>=1.17.2
- pandas>=1.0.4
- python-whois>=0.7.2
- requests>=2.23.0
- scikit-learn>=0.21.3
- selenium>=3.141.0
- sklearn>=0.0
- tqdm>=4.46.0
- urllib3>=1.25.8

Installing this module will install all the dependencies automatically.

Additional dependencies:

- Chrome Driver : You'll need a chromedriver in order to complete execution of the code. You can get the file from [here](https://chromedriver.chromium.org/). Unzip and add the "chromedriver.exe" (Windows) or "chromedriver" (Linux and MacOS) file to the PYTHONPATH environment variable.

    Well, that's a lot of work right? We know! So, we have included the current stable version of the chromedriver in the [dependencies](https://github.com/suhasrsharma/FluffyPancakes/tree/master/dependencies) folder of the repo.

    The code automatically detects the OS (Windows, Linux Based and MacOS) and picks up the respective chromedriver file.

    **You're all set to go.** Although, if, by any chance, you face an issue, just add to PYTHONPATH, the directory structure to where you downloaded this repository.


# Development

Want to contribute? Great!

FluffyPancakes uses http requests, bs4, selenium, and of course, Machine Learning, and a lot more libraries. 
You can find the GitHub repository [here](https://github.com/suhasrsharma/FluffyPancakes).


Make sure you use the following command to get the exact versions of pytest and twine:

```sh
$ pip install -e .[dev]
```

You can find the sample test case [here](https://github.com/suhasrsharma/FluffyPancakes/blob/master/src/sample_test.py).



# Development Status
##### Development Status :: 4 - Beta
##### Operating System :: OS Independent

# License
### MIT
---

In collaboration with the [ISFCR Lab](https://research.pes.edu/isfcr/) at [PES University](https://www.pes.edu/), Bangalore, India.

