无法打印href?

时间:2019-04-12 12:57:20

标签: python python-3.x selenium selenium-webdriver

我一直在整个网站上进行搜索,希望找到答案,但是,我查看的每个问题都没有像我要抓取的页面那样嵌套的HTML代码过多。 我真的希望有人能发现我明显的错误。我有以下代码正在提取类别标题,但烦人的不是每个代码都附带的href。运行时,代码当前对所有href都返回“ None”,但我无法解释原因。我认为这可能是因为我在HTML中定位了错误的元素,标记或类,但无法正确识别出应该是哪个。

from selenium import webdriver
import time

# The website to scrape
url = "https://www.jtinsight.com/JTIRA/JTIRA.aspx#!/full-category-list"

# Creating the WebDriver object using the ChromeDriver
driver = webdriver.Chrome()

# Directing the driver to the defined url
driver.get(url)

# driver.implicitly_wait(5)
time.sleep(1)

# Locate the categories
categories = driver.find_elements_by_xpath('//div[@class="subCatEntry ng-scope"]')

# Print out all categories on current page
num_page_items = len(categories)
print(num_page_items)
for headers in range(num_page_items):
    print(categories[headers].text)
for elem in categories:
    print(elem.get_attribute("a.divLink[href='*']"))

# Clean up (close browser once task is completed)
time.sleep(1)
driver.close()

如果有人能指出我的错误,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

请尝试以下代码。

for elem in categories:
    print(elem.find_element_by_css_selector("a.divLink").get_attribute('href'))

答案 1 :(得分:0)

您正在传递get_attribute方法的CSS选择器。那是行不通的。您只需要提供属性名称。如果网络元素elem具有名为href的属性,则它将打印该属性的值。

首先,获取锚点<a>元素。所有子类别锚点都具有类divLink。要获取锚元素,请尝试

categories = driver.find_elements_by_class_name('divLink')

第二,通过在get_ttribute中传递属性名称来打印属性值。 尝试

print(elem.get_attribute("href"))
  

这样,您将可以打印所有href值。