Compare commits
4 Commits
master
...
feature/se
Author | SHA1 | Date | |
---|---|---|---|
8828f1c9c2 | |||
f2c8aff951 | |||
68ec9d52ed | |||
307745babe |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,6 @@
|
|||||||
target/
|
target/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
tomcat-binaries/
|
||||||
|
|
||||||
|
src/main/amazon-scrapi/WEB-INF/classes/
|
||||||
|
src/main/amazon-scrapi/WEB-INF/lib/
|
26
README.md
26
README.md
@ -1,3 +1,29 @@
|
|||||||
# amazon-scrapi
|
# amazon-scrapi
|
||||||
|
|
||||||
An API interface with Amazon, that uses webscraping
|
An API interface with Amazon, that uses webscraping
|
||||||
|
|
||||||
|
# Development Resources
|
||||||
|
- [Intro to servlets](https://dev.to/dilanka-rathnasiri/introduction-to-java-servlets-32oc)
|
||||||
|
|
||||||
|
# Development Environment Setup
|
||||||
|
|
||||||
|
## VSCode / VSCodium
|
||||||
|
|
||||||
|
Install the following softwares
|
||||||
|
- Required for development
|
||||||
|
- Maven
|
||||||
|
- Java JDK
|
||||||
|
- Git
|
||||||
|
- Highly recommended for debugging or deployment
|
||||||
|
- [Apache Tomcat](https://tomcat.apache.org)
|
||||||
|
- Docker
|
||||||
|
|
||||||
|
VSCode Extensions
|
||||||
|
- Extension Pack for Java
|
||||||
|
|
||||||
|
### Tomcat
|
||||||
|
Download binaries for Tomcat.
|
||||||
|
You can get a VSCode extension to deploying project to Tomcat for debugging.
|
||||||
|
Following these guides.
|
||||||
|
- Extension Setup [(Video](https://www.youtube.com/watch?v=R9mugpHWr14) - [Article)](https://www.brandondonnelson.com/2020/06/debugging-java-web-app-in-visual-studio.html).
|
||||||
|
- Helped understand config [(video)](https://www.youtube.com/watch?v=RiPot1ne8rI)
|
20
pom.xml
20
pom.xml
@ -28,6 +28,21 @@
|
|||||||
<version>3.8.1</version>
|
<version>3.8.1</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.microsoft.playwright</groupId>
|
||||||
|
<artifactId>playwright</artifactId>
|
||||||
|
<version>1.48.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
<artifactId>logback-classic</artifactId>
|
||||||
|
<version>1.5.12</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
<artifactId>logback-access</artifactId>
|
||||||
|
<version>1.5.12</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -37,8 +52,9 @@
|
|||||||
<artifactId>maven-war-plugin</artifactId>
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
<version>3.3.2</version>
|
<version>3.3.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<webappDirectory>src/main/webapp</webappDirectory>
|
<webappDirectory>src/main/amazon-scrapi</webappDirectory>
|
||||||
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
|
<webXml>src/main/amazon-scrapi/WEB-INF/web.xml</webXml>
|
||||||
|
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
12
src/main/amazon-scrapi/index.jsp
Normal file
12
src/main/amazon-scrapi/index.jsp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Amazon Scrapi</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h2>Amazon Scrapi</h2>
|
||||||
|
<hr />
|
||||||
|
<p>An API interface with amazon.com using webscraping</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,46 @@
|
|||||||
|
package com.veritablevalor.blizliam;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.microsoft.playwright.Browser;
|
||||||
|
import com.microsoft.playwright.Page;
|
||||||
|
import com.microsoft.playwright.Playwright;
|
||||||
|
|
||||||
|
public class AmazonRepository {
|
||||||
|
|
||||||
|
Playwright _playwright;
|
||||||
|
Browser _browser;
|
||||||
|
Page _page;
|
||||||
|
boolean _loggedIn = false;
|
||||||
|
Logger _logger;
|
||||||
|
|
||||||
|
final String AMAZON_URL = "https://amazon.com/";
|
||||||
|
|
||||||
|
public AmazonRepository()
|
||||||
|
{
|
||||||
|
Logger logger = LoggerFactory.getLogger(getClass());
|
||||||
|
_logger = logger;
|
||||||
|
|
||||||
|
_logger.info("Amazon URL: " + AMAZON_URL);
|
||||||
|
|
||||||
|
_playwright = Playwright.create();
|
||||||
|
_browser = _playwright.chromium().launch();
|
||||||
|
|
||||||
|
//_page = page;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void AuthIfNeeded(String redirectUrl)
|
||||||
|
{
|
||||||
|
Page page = _browser.newPage();
|
||||||
|
page.navigate(AMAZON_URL);
|
||||||
|
|
||||||
|
boolean loggedIn = page.getByText("Hello, sign in").count() <= 0;
|
||||||
|
|
||||||
|
if (loggedIn)
|
||||||
|
_logger.info("Already Logged in as: ");
|
||||||
|
else
|
||||||
|
_logger.info("Not logged in...");
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package com.veritablevalor.blizliam;
|
package com.veritablevalor.blizliam;
|
||||||
|
|
||||||
import jakarta.servlet.ServletException;
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.annotation.WebServlet;
|
||||||
import jakarta.servlet.http.HttpServlet;
|
import jakarta.servlet.http.HttpServlet;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -8,11 +9,46 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
|
import com.microsoft.playwright.Browser;
|
||||||
|
import com.microsoft.playwright.Page;
|
||||||
|
import com.microsoft.playwright.Playwright;
|
||||||
|
|
||||||
|
@WebServlet(
|
||||||
|
value = "/hello",
|
||||||
|
name = "hello"
|
||||||
|
)
|
||||||
public class App extends HttpServlet {
|
public class App extends HttpServlet {
|
||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
String url = "https://amazon.com";
|
||||||
|
|
||||||
|
AmazonRepository _repo = new AmazonRepository();
|
||||||
|
_repo.AuthIfNeeded("");
|
||||||
|
|
||||||
PrintWriter out = resp.getWriter();
|
PrintWriter out = resp.getWriter();
|
||||||
out.println("Hello!");
|
|
||||||
|
/*
|
||||||
|
try (Playwright playwright = Playwright.create()) {
|
||||||
|
Browser browser = playwright.chromium().launch();
|
||||||
|
Page page = browser.newPage();
|
||||||
|
page.navigate(url);
|
||||||
|
|
||||||
|
|
||||||
|
boolean loggedIn = page.getByText("Hello, sign in").count() <= 0;
|
||||||
|
|
||||||
|
System.out.println(page.title());
|
||||||
|
out.println("Here is the page.title: " + page.title());
|
||||||
|
|
||||||
|
if (loggedIn)
|
||||||
|
{
|
||||||
|
out.println("Logged in");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
out.println("Logged out");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
out.close();
|
out.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user