我正在尝试使用Python和Selenium为Linkedin构建一个web刮板。我试图打印出标题,但输出只显示一个空列表,我不知道为什么。我已经尝试打印列表中的所有元素,并使用items.text.replace()替换公共输出,但是,输出仍然是所有元素。我还尝试打印父div,但输出仍然是一个空列表
以下是我编写的代码:
#search
driver.find_element_by_xpath("//*[@id='ember16']/input").send_keys("Steve Jobs")
driver.find_element_by_xpath("//*[@id='ember16']/input").send_keys(Keys.RETURN)
driver.implicitly_wait(3)
#result count
resultCount = driver.find_element_by_xpath("//*[@id='ember64']/div/h3")
print("\n" + str(resultCount.text))
#printing
results = driver.find_elements_by_xpath('//*[@id="ember64"]/div/ul')
for items in results:
print(str(driver.find_elements_by_xpath('//*[@id="ember552"]/div/div[2]/p[1]'))+"\n")
以下是输出:
About 43,000 results
[]
Process finished with exit code 0
在遍历列表时,是否仍然可以指定要打印的元素?
编辑: 以下是该代码的最小可复制示例:
# search url
url = 'https://www.linkedin.com/search/results/people/?keywords=Steve%20Jobs&origin=GLOBAL_SEARCH_HEADER'
driver.get(url)
# print job title
results = driver.find_elements_by_xpath('//*[@id="ember64"]/div/ul')
for items in results:
print(driver.find_elements_by_xpath('//*[@id="ember552"]/div/div[2]/p[1]'))
以下是输出:
[]
Process finished with exit code 0
请尝试以下xpath:
对于标题,您可以使用下面的xpath和gettext()
在xpath中使用Contains()查找包含部分文本的webelement。 explict wait可以用于许多条件,我在上面使用过其中一种。在查找任何webelement之前使用wait是一种很好的做法。 有关selenium wait refhttps://selenium-python.readthedocs.io/waits.html的更多详细信息 xpath函数-https://docs.oracle.com/cd/E35413_01/doc.722/e35419/dev_xpath_functions.htm#autoId12 Xpath向我显示所有列表:![enter image description here](https://i.stack.imgur.com/AaOFz.png)
相关问题 更多 >
编程相关推荐