我尝试抓取LinkedIn站点并将站点上的所有公司名称保存到 Dataframe 中,但是当我运行for循环来循环list元素时,它会在整个循环中打印第一个公司名称
from selenium import webdriver
import os
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import undetected_chromedriver as uc
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import pandas as pd
url = 'https://www.linkedin.com/jobs/search/?currentJobId=3492578215&geoId=105365761&keywords=data%20analyst&location=Nigeria&refresh=true'
options = webdriver.ChromeOptions()
options.add_experimental_option('detach',True)
driver = webdriver.Chrome(r"C:\Users\i\Desktop\PPstuff\selenium\chromedriver.exe", options=options)
driver.get(url)
jobs = driver.find_elements(By.TAG_NAME,'li')
company_name = []
for job in jobs:
company = job.find_element(By.XPATH,"//h4").text
company_name.append(company)
print(company)
3条答案
按热度按时间vshtjzan1#
要提取所有公司名称,您需要为visibility_of_all_elements_located()导出WebDriverWait,并使用List Comprehension,您可以使用以下Locator Strategies之一:
get_attribute("innerHTML")
:结束
有用文档链接:
text
属性返回The text of the element.
ovfsdjhp2#
我用CSS找到了这些元素(只是我的喜好),我用的是FireFox,但是Chrome应该也能用。我用了一个if条件来跳过重复。这应该能用。
jpfvwuh43#
尝试下面的代码,它打印所需的元素:
控制台输出: