Как перенести данные в электронную таблицу прямо из Indeed? - PullRequest
0 голосов
/ 17 июня 2020

Я работаю над проектом, в котором я извлекаю данные из результатов поиска. Я хочу собрать заголовок объявления, название компании, местонахождение и описание. Прямо сейчас я могу go перейти на следующую страницу, изменив URL-адрес, но после очистки всех страниц он некорректно экспортируется в мой файл .csv. Пожалуйста, дай мне знать, что ты думаешь!

Вот мой текущий код:

from selenium import webdriver

MAX_PAGE_NUM = 3
MAX_PAGE_DIG = 2
driver = webdriver.Chrome("/Users/nzalle/Downloads/chromedriver")

with open('results.csv', 'w') as f:
    f.write("Title, Company Name, Location, Description \n")

for i in range (0, MAX_PAGE_NUM + 1):
    page_num = (MAX_PAGE_DIG - len(str(i))) * str(i) + "0"
    url = "https://www.indeed.com/jobs?q=EHS&l=Arizona&start=" + page_num

    driver.get(url)

    Title = driver.find_elements_by_xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "jobtitle", " " ))]')
    CompanyName = driver.find_elements_by_xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "company", " " ))] | //*[contains(concat( " ", @class, " " ), concat( " ", "company", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "turnstileLink", " " ))]')
    Location = driver.find_elements_by_xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "accessible-contrast-color-location", " " ))]')
    Description = driver.find_elements_by_xpath('//*[(@id = "resultsCol")]//li')

    num_page_items = len(Title)
    with open('results.csv', 'a') as f:
        for i in range(num_page_items):
            f.write(Title[i].text + "," + CompanyName[i].text + "," + Location[i].text + "," + Description[i].text + "\n")
...