硒报废但增加一倍

时间:2020-11-12 11:30:11

标签: python selenium

所以我很快就要去大学了,我正在抓取一个奖学金网站。我用过硒并刮掉了标题,但它只输出一个标题,但乘以页面上总标题的数量。

代码


from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options

#making the browser headless
firefox_options = Options()
firefox_options.add_argument("--headless")

#creating the driver
driver = webdriver.Firefox(options = firefox_options)

#URL
url = 'https://www.marj3.com/programs?fwp_degree_level=28aff2d9374a3b4ebf15be16e9cb664f&fwp_specializations_ar=0f1b95cc9471e2e421c4accc36c7c49e%2C7acecc33eb0c7e4e737e479d03235599%2Cb8508ad006f6f4177891a746b9a9b570%2C621a2eee69e1cb23624502173022d322%2Cb9df2d2680b2b186c20a13543269edd5%2Cfd611e512400e10e526896597317452b%2C7e9240f0dc4708eb7a78b5ddf6a99e8b%2C8c1886d7ed21025ad5bb40d4442290af&fwp_study_type_ar=full-time'

#Linking URl to driver
driver.get(url)

#container class: ecs-link-wrapper
#country_hosting: //*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[1]/div/div[2]/div/div/div/div
#title: //*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[2]/div/div/div/div/div/p/a
#money: //*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[3]/div/div/div/div[1]/div/p
#type: #//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[3]/div/div/div/div[3]/div/p
#number of years: //*[@id="post-435735"]/div/div/div/section[2]/div/div/div/div[1]/div/ul/li/span[2]
#date of posting: //*[@id="post-435735"]/div/div/div/section[2]/div/div/div/div[2]/div/ul/li/span[2]

universities = driver.find_elements_by_class_name('ecs-link-wrapper')
for uni in universities:
    university_title = driver.find_element_by_css_selector('.dce-elementor-post-435735 > div:nth-child(1) > section:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > section:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > p:nth-child(1) > a:nth-child(1)').text
    hosting_country = driver.find_element_by_xpath('.//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[1]/div/div[2]/div/div/div/div').text
    university_annual_price = driver.find_element_by_xpath('.//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[3]/div/div/div/div[1]/div/p').text
    uni_type = driver.find_element_by_xpath('.//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/section[3]/div/div/div/div[3]/div/p').text
    number_of_years = driver.find_element_by_xpath('.//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/div[1]/div/ul/li/span[2]').text
    date_of_posting = driver.find_element_by_xpath('.//*[@id="post-435735"]/div/div/div/section[2]/div/div/div/div[2]/div/ul/li/span[2]').text

    print(university_title)




我的输出

بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي
بكالوريوس الهندسة المعمارية والتصميم البيئي


url

https://www.marj3.com/programs?fwp_degree_level=28aff2d9374a3b4ebf15be16e9cb664f&fwp_specializations_ar=0f1b95cc9471e2e421c4accc36c7c49e%2C7acecc33eb0c7e4e737e479d03235599%2Cb8508ad006f6f4177891a746b9a9b570%2C621a2eee69e1cb23624502173022d322%2Cb9df2d2680b2b186c20a13543269edd5%2Cfd611e512400e10e526896597317452b%2C7e9240f0dc4708eb7a78b5ddf6a99e8b%2C8c1886d7ed21025ad5bb40d4442290af&fwp_study_type_ar=full-time

1 个答案:

答案 0 :(得分:0)

检查循环。您正在运行与该网页中带有ecs-link-wrapper类的HTTP元素相同的代码。

您可能希望使用找到的每个元素来获取您感兴趣的不同位。

我还将检查您的XPath,给人的印象是您使用的是特定帖子的ID,并且在您的循环中不起作用。

此外,请尝试使用最通用的方式来查找元素,如果您依赖XPath,则Web端代码中的微小更改都会破坏您的报废。