python - 如何使用 Selenium 抓取多个 URL 的内容? Python

标签 python loops selenium-webdriver xpath

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)

enter image description here

我有上面的编码来使用 Selenium - python 提取 href 链接。我想提取每个人的个人资料“董事会成员资格”中的内容。我知道如何一一提取它们,但不知道如何编写循环来执行此操作。

这是我的代码:

driver2 = webdriver.Chrome(r'XXXX\chromedriver.exe')
driver2.get("https://www.bloomberg.com/profiles/people/15103277-mark-elliot-zuckerberg")

boardmembership_table=driver2.find_elements_by_xpath('//*[@id="root"]/div/section/div[5]')[0]
boardmembership_table.text

任何想法都值得赞赏!

最佳答案

您基本上只需将第二个部分附加到 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

这应该会给你一个良好的开端。

关于python - 如何使用 Selenium 抓取多个 URL 的内容? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927888/

相关文章:

python - 构建具有完整图像支持的 Pygame?

java - 如何输入字符作为输入以跳出寻找整数的循环?

python - 使用循环从列表创建子图。使数据绘制到两个子图上

c# - 我什么时候应该在 C# 中使用 IEnumerator 进行循环?

c# - WebDriverWait 如何等到项目存在或不存在?

java - 从 3 个下拉列表中选择项目,并依赖于第一个下拉列表

python对值列表进行排名,使用非唯一值的平均排名

python - 确保 Python 中的用户输入有效时,是否有理由不使用递归?

python - 如何用循环缩短这个网格移动逻辑(python)

python - 如何使用 Selenium Python 定位元素