I'm new to web scraping and I have a problem with when I try to scrape the posts from Reddit. It only shows me the top 3 or 4 results. as in this image
The code that I use is:
import time
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import pandas as pd
import requests
from bs4 import BeautifulSoup
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get("https://www.reddit.com/r/football/")
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
post_elements = soup.find_all('shreddit-post', class_='block cursor-pointer relative bg-neutral-background focus-within:bg-neutral-background-hover hover:bg-neutral-background-hover xs:rounded-[16px] p-md my-2xs nd:visible')
post_data_list = []
for post_elem in post_elements:
post_data = {}
post_data['post_title'] = post_elem['post-title']
post_data['permalink'] = post_elem['permalink']
post_data['author'] = post_elem['author']
post_data['timestamp'] = post_elem.find('time')['datetime']
post_data['score'] = post_elem['score']
post_data['domain'] = post_elem['domain']
post_data_list.append(post_data)
reddit_df = pd.DataFrame(post_data_list)
reddit_df # see the result in picture.
Is there any way to get data from the rest of the posts on reddit? (there are more than 3 posts on the page).
i tried to open it in csv but still only three results.
After using the code from above i was expecting to see a bigger sheet with data from more posts.
If there is a limit for scraping on reddit, is there a way to bypass that limit?