Trying to scrape some data. Checking it with print and getting multiple prints..However, the CSV has only one entry. Can you help please? Thanks a lot.
import csv
import time
import requests
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
job_Details = []
job_links = []
chrome_options = Options()
'''chrome_options.add_argument("--headless")'''
driver = webdriver.Chrome(executable_path='C:/bin/chromedriver.exe', options=chrome_options)
driver.get(f'https://remotejobs.world/')
'''SCROLL_PAUSE_TIME = 20'''
last_height = driver.execute_script("return document.body.scrollHeight")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
divs = driver.find_elements_by_tag_name('h2')
for div in divs:
job_Details.append(div)
link = div.find_element_by_tag_name('a')
job_links.append(link)
for job_detail, job_link in zip(job_Details, job_links):
if job_detail and job_link:
print(job_link.get_attribute('href'))
print(job_detail.text)
url = job_link.get_attribute('href')
new_page = requests.get(url).text
time.sleep(2)
soup = BeautifulSoup(new_page, 'html.parser')
job_desc = soup.find('div', class_='w-full md:w-2/3')
if job_desc:
print(job_desc.text) #Successful Prints.
dict = {'Job_title and Company': job_detail.text, "Job link": job_link.get_attribute('href'),
"Job Details": job_desc.text}
with open('remoteWORLD.csv', 'w') as f:
w = csv.DictWriter(f, dict.keys())
w.writeheader()
w.writerow(dict)