HW5
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
name: Java CI with Maven
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main", "develop" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "main", "develop" ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
java-version: '17'
|
||||||
|
distribution: 'temurin'
|
||||||
|
cache: maven
|
||||||
|
- name: Build and test with Maven
|
||||||
|
run: mvn -B test --file pom.xml
|
||||||
+67
@@ -0,0 +1,67 @@
|
|||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
# Maven
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
# IntelliJ IDEA
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
*.iws
|
||||||
|
out/
|
||||||
|
|
||||||
|
# Eclipse
|
||||||
|
.metadata
|
||||||
|
bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
.recommenders
|
||||||
|
|
||||||
|
# VS Code
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
1. Movie: 12 Angry Men, Rating: 9.0, Year: 1957
|
||||||
|
2. Movie: Fight Club, Rating: 8.8, Year: 1999
|
||||||
|
3. Movie: Forrest Gump, Rating: 8.8, Year: 1994
|
||||||
|
4. Movie: Goodfellas, Rating: 8.7, Year: 1990
|
||||||
|
5. Movie: Inception, Rating: 8.8, Year: 2010
|
||||||
|
6. Movie: Interstellar, Rating: 8.6, Year: 2014
|
||||||
|
7. Movie: Pulp Fiction, Rating: 8.9, Year: 1994
|
||||||
|
8. Movie: Schindler's List, Rating: 9.0, Year: 1993
|
||||||
|
9. Movie: Star Wars: Episode V - The Empire Strikes Back, Rating: 8.7, Year: 1980
|
||||||
|
10. Movie: The Dark Knight, Rating: 9.0, Year: 2008
|
||||||
|
11. Movie: The Godfather, Rating: 9.2, Year: 1972
|
||||||
|
12. Movie: The Lord of the Rings: The Fellowship of the Ring, Rating: 8.8, Year: 2001
|
||||||
|
13. Movie: The Lord of the Rings: The Return of the King, Rating: 9.0, Year: 2003
|
||||||
|
14. Movie: The Matrix, Rating: 8.7, Year: 1999
|
||||||
|
15. Movie: The Shawshank Redemption, Rating: 9.3, Year: 1994
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
1. Movie: Interstellar, Rating: 8.6, Year: 2014
|
||||||
|
2. Movie: Inception, Rating: 8.8, Year: 2010
|
||||||
|
3. Movie: The Dark Knight, Rating: 9.0, Year: 2008
|
||||||
|
4. Movie: The Lord of the Rings: The Return of the King, Rating: 9.0, Year: 2003
|
||||||
|
5. Movie: The Lord of the Rings: The Fellowship of the Ring, Rating: 8.8, Year: 2001
|
||||||
|
6. Movie: Fight Club, Rating: 8.8, Year: 1999
|
||||||
|
7. Movie: The Matrix, Rating: 8.7, Year: 1999
|
||||||
|
8. Movie: The Shawshank Redemption, Rating: 9.3, Year: 1994
|
||||||
|
9. Movie: Pulp Fiction, Rating: 8.9, Year: 1994
|
||||||
|
10. Movie: Forrest Gump, Rating: 8.8, Year: 1994
|
||||||
|
11. Movie: Schindler's List, Rating: 9.0, Year: 1993
|
||||||
|
12. Movie: Goodfellas, Rating: 8.7, Year: 1990
|
||||||
|
13. Movie: Star Wars: Episode V - The Empire Strikes Back, Rating: 8.7, Year: 1980
|
||||||
|
14. Movie: The Godfather, Rating: 9.2, Year: 1972
|
||||||
|
15. Movie: 12 Angry Men, Rating: 9.0, Year: 1957
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
# Fourth Assignment: IMDb Scraper 🎬
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This project delves into the practical application of HTML parsing techniques using Java and the JSoup library. The objective is to extract and manipulate data from a structured HTML document containing information about various movies. Key tasks include parsing the document, creating Java objects to represent the data, sorting the information based on different criteria, and presenting the results effectively.
|
||||||
|
|
||||||
|
## Why Learn Web Scraping? 📊
|
||||||
|
|
||||||
|
Mastering web scraping empowers individuals and businesses to glean valuable insights, automate tasks, and make informed decisions based on real-time data.
|
||||||
|
|
||||||
|
- In e-commerce, web scraping aids in monitoring competitors' prices, tracking product availability, and gathering customer reviews. In finance, it facilitates trend analysis, investment decisions, and risk assessment.
|
||||||
|
|
||||||
|
- Research, academia, journalism, and media professionals leverage web scraping for data collection, trend tracking, sentiment analysis, and investigative reporting.
|
||||||
|
|
||||||
|
By mastering web scraping, professionals can extract data efficiently, outperform competitors, and drive data-informed success in diverse industries.
|
||||||
|
|
||||||
|
## Prerequisites ✅
|
||||||
|
|
||||||
|
Before diving into this project, make sure you have the following tools and knowledge:
|
||||||
|
|
||||||
|
### Tools Needed:
|
||||||
|
- **Java 17 or higher** : Download the latest version from [Oracle's Java website](https://www.oracle.com/java/technologies/downloads/).
|
||||||
|
- **Git** : Install Git, a powerful version control system, from [Git's official website](https://git-scm.com/downloads).
|
||||||
|
- **Maven** : Utilize Maven as the build tool. You can find installation instructions [here](https://maven.apache.org/install.html).
|
||||||
|
|
||||||
|
### Knowledge Required:
|
||||||
|
In addition to the tools mentioned above, familiarity with the following topics is crucial for successful project completion:
|
||||||
|
- **Jsoup** : Understanding how to access, parse, and manipulate HTML files using Jsoup.
|
||||||
|
- **HTML** : Knowledge of various HTML tags, their purposes, and how to identify and manipulate them using Jsoup.
|
||||||
|
- **CSS** : Understanding how to style HTML elements, work with CSS classes, and utilize selectors efficiently.
|
||||||
|
|
||||||
|
By having a solid grasp of these tools and concepts, you'll be well-equipped to excel in this project. 🚀
|
||||||
|
|
||||||
|
## Objectives 🎯
|
||||||
|
|
||||||
|
The primary objectives of this assignment are:
|
||||||
|
|
||||||
|
- Parsing an HTML file with movie data.
|
||||||
|
- Extracting relevant information such as title, rating, and release year.
|
||||||
|
- Implementing Java classes to represent movies.
|
||||||
|
- Utilizing JSoup for HTML parsing.
|
||||||
|
- Applying sorting algorithms for organizing data by title, release year, and rating.
|
||||||
|
- Displaying the sorted movie information effectively.
|
||||||
|
- Passing the provided **JUnit tests** to verify the correctness of your code.
|
||||||
|
|
||||||
|
## Tasks 📝
|
||||||
|
|
||||||
|
1. **Set Up the Project:**
|
||||||
|
|
||||||
|
- Start by cloning the repository to your local machine.
|
||||||
|
- Open the project in an IDE such as IntelliJ.
|
||||||
|
|
||||||
|
2. **Integrate JSoup Dependency:**
|
||||||
|
|
||||||
|
- Include the JSoup dependency in your `pom.xml` file.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jsoup</groupId>
|
||||||
|
<artifactId>jsoup</artifactId>
|
||||||
|
<version>1.14.3</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Complete the Movie Class:**
|
||||||
|
|
||||||
|
- Complete the `Movie` class in Java to encapsulate movie-specific data.
|
||||||
|
|
||||||
|
4. **HTML Parsing using JSoup:**
|
||||||
|
|
||||||
|
Utilize JSoup to parse the HTML file located in the resources folder at this path: `src/main/resources/Movies.html` and extract relevant information such as:
|
||||||
|
|
||||||
|
- `<span class="movie-title">` = for movie titles
|
||||||
|
- `<span class="movie-rating">` = for movie ratings
|
||||||
|
- `<span class="movie-year">` = for movie release years
|
||||||
|
|
||||||
|
**Note: The span tags are nested within other tags and div closures. Look out for unneeded text like '/10' inside elements.**
|
||||||
|
|
||||||
|
5. **Implement Sorting Functionality:**
|
||||||
|
|
||||||
|
- Develop sorting algorithms for various criteria like title, year, and rating.
|
||||||
|
|
||||||
|
6. **Run JUnit Tests:**
|
||||||
|
|
||||||
|
- We have provided tests using JUnit 5 (`ParserTest.java`). Run them via your IDE or by executing the following Maven command in your terminal to verify your logic:
|
||||||
|
```bash
|
||||||
|
mvn test
|
||||||
|
```
|
||||||
|
|
||||||
|
7. **Visualize Results:**
|
||||||
|
|
||||||
|
- Clearly present the sorted movie data.
|
||||||
|
|
||||||
|
## Bonus Objectives (For Advanced Users) 🌟
|
||||||
|
|
||||||
|
To enhance your project further:
|
||||||
|
|
||||||
|
- Expand data extraction to additional websites, such as [Oscar Winning Films](https://www.scrapethissite.com/pages/ajax-javascript/).
|
||||||
|
- Develop a user interface for interactive querying and sorting.
|
||||||
|
- Utilize SQL or NoSQL databases to store the scraped data.
|
||||||
|
|
||||||
|
## Notes 📝
|
||||||
|
|
||||||
|
Here are some important points to keep in mind:
|
||||||
|
|
||||||
|
- There is a `Help` folder located at the root directory of the project which contains the sorted movies each by different priorities. It is there just so you can see what your output should look like in the end.
|
||||||
|
- The unit tests are provided to assist you in understanding the project requirements. Your final grade is not solely dependent on their results; they are meant to aid your learning process. Remember to enable GitHub Actions for the test workflow to run on GitHub.
|
||||||
|
- Feel free to leverage ChatGPT for learning web scraping and resolving any challenges that you may not find solutions to on the internet. Utilize its capabilities to enhance your understanding and overcome obstacles effectively.
|
||||||
|
**But it is strictly prohibited to use ChatGPT or any other AI generative model for completing any section of this assignment. Failure to comply will result in a score of 0 without any warnings.**
|
||||||
|
|
||||||
|
## Evaluation 🧐
|
||||||
|
|
||||||
|
Your success will be judged based on:
|
||||||
|
|
||||||
|
- Functionality of the code in parsing HTML, creating Java objects, and sorting data.
|
||||||
|
- Readability and maintainability of the code.
|
||||||
|
- Efficiency of sorting algorithms.
|
||||||
|
- Clarity of the output format.
|
||||||
|
- Successful execution of the provided JUnit tests.
|
||||||
|
|
||||||
|
## Submission 📁
|
||||||
|
|
||||||
|
To share your work:
|
||||||
|
|
||||||
|
1. Add your mentor as a contributor to the project.
|
||||||
|
2. Create a `develop` branch for implementing features.
|
||||||
|
3. Use Git for regular code commits.
|
||||||
|
4. Push your code to the remote repository.
|
||||||
|
5. Submit a pull request to merge the `develop` branch with `main`.
|
||||||
|
|
||||||
|
If you have any further questions or need clarification, do not hesitate to reach out to your mentor. Good luck with your project! 🌟
|
||||||
|
|
||||||
|
## TA Tutorial Videos 🎥
|
||||||
|
|
||||||
|
To help you succeed in this assignment, our TA team has recorded dedicated tutorial videos covering the essential topics. Please watch these before starting:
|
||||||
|
|
||||||
|
- [Tutorial: Basics of HTML & CSS]([INSERT_LINK_HERE])
|
||||||
|
- [Tutorial: Web Scraping in Java using JSoup]([INSERT_LINK_HERE])
|
||||||
|
|
||||||
|
## Additional Resources 📚
|
||||||
|
|
||||||
|
- [Jsoup - Official website](https://jsoup.org/cookbook/)
|
||||||
|
- [Jsoup - Javapoint](https://www.javatpoint.com/jsoup-tutorial)
|
||||||
|
- [Jsoup - Baeldung](https://www.baeldung.com/java-with-jsoup)
|
||||||
|
- [HTML - W3](https://www.w3schools.com/html/)
|
||||||
|
- [CSS - W3](https://www.w3schools.com/css/default.asp)
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<artifactId>HTML-Parser</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>17</maven.compiler.source>
|
||||||
|
<maven.compiler.target>17</maven.compiler.target>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
<version>5.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter-engine</artifactId>
|
||||||
|
<version>5.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jsoup</groupId>
|
||||||
|
<artifactId>jsoup</artifactId>
|
||||||
|
<version>1.14.3</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>3.0.0-M5</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class Movie {
|
||||||
|
private String title;
|
||||||
|
private double rating;
|
||||||
|
private int year;
|
||||||
|
|
||||||
|
public Movie(String title, double rating, int year) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getRating() {
|
||||||
|
return rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getYear() {
|
||||||
|
return year;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
//TODO
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) return true;
|
||||||
|
if (o == null || getClass() != o.getClass()) return false;
|
||||||
|
Movie movie = (Movie) o;
|
||||||
|
return Double.compare(movie.rating, rating) == 0 && movie.year == year && Objects.equals(title, movie.title);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
import org.jsoup.Jsoup;
|
||||||
|
import org.jsoup.nodes.Document;
|
||||||
|
import org.jsoup.nodes.Element;
|
||||||
|
import org.jsoup.select.Elements;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class Parser {
|
||||||
|
static List<Movie> movies = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<Movie> sortByTitle() {
|
||||||
|
List<Movie> sortedByTitle = new ArrayList<>(movies);
|
||||||
|
// Sort movies alphabetically by title
|
||||||
|
//TODO
|
||||||
|
return sortedByTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Movie> sortByRating() {
|
||||||
|
List<Movie> sortedByRating = new ArrayList<>(movies);
|
||||||
|
// Sort movies by rating (highest to lowest)
|
||||||
|
//TODO
|
||||||
|
return sortedByRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Movie> sortByYear() {
|
||||||
|
List<Movie> sortedByYear = new ArrayList<>(movies);
|
||||||
|
// Sort movies by year (newest to oldest)
|
||||||
|
//TODO
|
||||||
|
return sortedByYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUp() throws IOException {
|
||||||
|
// Parse the HTML file using Jsoup
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
// Extract data from the HTML
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
// Iterate through each movie div to extract movie data
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// You can test your code here before you run the unit tests
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
<div id="page">
|
||||||
|
<section id="movies">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Movie List: To Scrape</h1>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Godfather</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.2/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1972</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Shawshank Redemption</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.3/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1994</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Dark Knight</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.0/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">2008</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">12 Angry Men</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.0/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1957</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Schindler's List</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.0/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1993</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Lord of the Rings: The Return of the King</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">9.0/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">2003</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Pulp Fiction</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.9/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1994</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Lord of the Rings: The Fellowship of the Ring</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.8/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">2001</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Forrest Gump</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.8/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1994</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Fight Club</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.8/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1999</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Inception</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.8/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">2010</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Star Wars: Episode V - The Empire Strikes Back</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.7/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1980</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">The Matrix</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.7/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1999</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Goodfellas</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.7/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">1990</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4 movie">
|
||||||
|
<h3 class="movie-title">Interstellar</h3>
|
||||||
|
<div class="movie-info">
|
||||||
|
<strong>Rating:</strong> <span class="movie-rating">8.6/10</span><br>
|
||||||
|
<strong>Year:</strong> <span class="movie-year">2014</span><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user