All Projects → opencharles → charles

opencharles / charles

Licence: BSD-3-Clause License
Java web crawling library

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to charles

nightwatch101
使用 Nightwatch 實現 End-to-End Testing ★
Stars: ✭ 42 (+35.48%)
Mutual labels:  webdriver, selenium
python-linkedin-bot
No description or website provided.
Stars: ✭ 25 (-19.35%)
Mutual labels:  webdriver, selenium
selenium-openapi
The missing Selenium OpenAPI spec
Stars: ✭ 25 (-19.35%)
Mutual labels:  webdriver, selenium
spydriver
🕵️ Lightweight utility to intercept WebDriver and WebElement method calls.
Stars: ✭ 24 (-22.58%)
Mutual labels:  webdriver, selenium
easyium-python
easyium is an easy-to-use wrapper for selenium&appium and it can make you more focus on business not the element.
Stars: ✭ 13 (-58.06%)
Mutual labels:  webdriver, selenium
SeleniumTDD
A Selenium TDD framework that incorporates key features of Selenium and TestNG which can be used to create web-based automation scripts.
Stars: ✭ 23 (-25.81%)
Mutual labels:  webdriver, selenium
Mobilenium
Mobilenium allows you to use Selenium and have access to status codes and HTTP headers, without the need for manual labor.
Stars: ✭ 22 (-29.03%)
Mutual labels:  webdriver, selenium
Selion
Enabling Test Automation in Java
Stars: ✭ 252 (+712.9%)
Mutual labels:  webdriver, selenium
hcaptcha-solver-python-selenium
hCaptcha solver and bypasser for Python Selenium. Simple website to try to solve hCaptcha.
Stars: ✭ 32 (+3.23%)
Mutual labels:  webdriver, selenium
pystest
WEB UI自动化测试框架,selenium结合python,测试人员不需要会代码,只需要写配置即可实现,并且方便懂代码的测试人员扩展
Stars: ✭ 24 (-22.58%)
Mutual labels:  webdriver, selenium
basic-selenium-project
an example selenium test project
Stars: ✭ 55 (+77.42%)
Mutual labels:  webdriver, selenium
WebGrid
Decentralized, scalable and robust implementation of a selenium-grid equivalent. Based on the WebDriver specification by the W3C.
Stars: ✭ 17 (-45.16%)
Mutual labels:  webdriver, selenium
phoenix.webui.framework
基于WebDriver的WebUI自动化测试框架
Stars: ✭ 118 (+280.65%)
Mutual labels:  webdriver, selenium
page-modeller
⚙️ Browser DevTools extension for modelling web pages for automation.
Stars: ✭ 66 (+112.9%)
Mutual labels:  webdriver, selenium
google-meet-bot
Bot for scheduling and entering google meet sessions automatically
Stars: ✭ 33 (+6.45%)
Mutual labels:  webdriver, selenium
callisto
Callisto is an open-source Kubernetes-native implementation of Selenium Grid.
Stars: ✭ 83 (+167.74%)
Mutual labels:  webdriver, selenium
Selenoid Ui
Graphical user interface for Selenoid project
Stars: ✭ 237 (+664.52%)
Mutual labels:  webdriver, selenium
Pytest Selenium
Plugin for running Selenium with pytest
Stars: ✭ 246 (+693.55%)
Mutual labels:  webdriver, selenium
arquillian-graphene
Robust Functional Tests leveraging WebDriver with flavour of neat AJAX-ready API
Stars: ✭ 91 (+193.55%)
Mutual labels:  webdriver, selenium
PWAF
Python Webdriver Automation Framework
Stars: ✭ 37 (+19.35%)
Mutual labels:  webdriver, selenium

charles

Smart web crawler.

Build Status PDD status Coverage Status

DevOps By Rultor.com We recommend IntelliJ IDEA

A smart web crawler that fetches data from a website and stores it in some way (writes it in files on the disk or POSTs it to an http endpoint etc) .

More options for crawling:

  1. crawl the links from a sitemap.xml

  2. crawl the website as a graph starting from a given url (the index)

  3. crawl with retrial if any RuntimeException happens etc

More details in this post.

Maven dependency

Get it using Maven:

<dependency>
    <groupId>com.amihaiemil.web</groupId>
    <artifactId>charles</artifactId>
    <version>1.1.1</version>
</dependency>

or take the fat jar.

Under the hood

Charles is powered by Selenium WebDriver. Any WebDriver implementation can be used to build a WebCrawl Examples:

Since it uses a web driver to render the pages, also any dynamic content will be crawled (e.g. content generated by javascript)

How to contribute

Read this post.

  1. Open an issue regarding an improvement you thought of, or a bug you noticed.
  2. If the issue is confirmed, fork the repository, do the changes on a sepparate branch and make a Pull Request.
  3. After review and acceptance, the PR is merged and closed.
  4. You are automatically listed as a contributor on the project's site

Make sure the maven build

$ mvn clean install -Dgoogle.chrome={path/to/chrome} -Pitcases

passes before making a PR.

Google Chrome has to have a version >=59, in order to support headless mode.

Integration tests

Integration tests are performed with Google Chrome run in headless mode. You also need to install chromedriver in order for everything to work.

You can skip the integration tests by omitting -Pitcases from the build command.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].