None
我具有以上代码,可以使用Selenium-python提取href链接。我想提取每个人的个人资料“董事会成员”中的内容。我知道如何一个一个地提取它们,但是不知道如何编写一个循环来这样做。
这是我的代码:
driver = webdriver.Chrome(r'XXXX\chromedriver.exe')
FB_bloomberg_URL="https://www.bloomberg.com/quote/FB:US"
driver.get(FB_bloomberg_URL)
eList = driver.find_elements_by_class_name('link__f5415c25')
hrefList = []
for e in eList:
hrefList.append(e.get_attribute('href'))
for href in hrefList:
print(href)
任何想法都值得赞赏!
答案 0 :(得分:0)
这是应该起作用的方法。
driver = webdriver.Chrome(r'XXXX\chromedriver.exe')
FB_bloomberg_URL="https://www.bloomberg.com/quote/FB:US"
driver.get(FB_bloomberg_URL)
eList = driver.find_elements_by_class_name('link__f5415c25')
hrefList = []
for e in eList:
hrefList.append(e.get_attribute('href'))
for href in hrefList:
print(href)
# iterating through all the board members here #<== changed below
driver.get(href)
# you can add WebDriver wait for the below item to be displayed
# so that the script will wait until page loaded successfully with this element
boardmembership_table=driver.find_elements_by_xpath('//*[@id="root"]/div/section/div[5]')[0]
boardmembership_table.text
答案 1 :(得分:0)
基本上,您只需将第二部分附加到for循环下的第一部分:
import sys
from selenium import webdriver
driver = webdriver.Firefox()
FB_bloomberg_URL="https://www.bloomberg.com/quote/FB:US"
driver.get(FB_bloomberg_URL)
eList = driver.find_elements_by_class_name('link__f5415c25')
hrefList = []
for e in eList:
hrefList.append(e.get_attribute('href'))
for href in hrefList:
--print(href)
driver.get(href)
boardmembership_table=driver.find_elements_by_xpath('//*[@id="root"]/div/section/div[5]')[0]
boardmembership_table.text
奖金:以下是使用正则表达式(import re
)从URL中提取人物姓名并将董事会成员资格表添加到词典中的方法。
result_dict = {}
regex = r"\/people\/\d+-(.*)$"
for href in hrefList:
driver.get(href)
boardmembership_table=driver.find_elements_by_xpath('//*[@id="root"]/div/section/div[5]')[0]
matches = re.finditer(regex, href, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
result_dict[match.group(1)] = boardmembership_table.text
这应该给您一个良好的开端。