无法使用 Selenium 从动态网站抓取链接

问题描述 投票:0回答:1

我正在尝试从以下网站收集个人资料和联系人的链接: https://www.dlapiper.com/en-us/people#t=All&sort=relevancy&numberOfResults=100&f:CountriesID=[United%20Kingdom]

我使用 Selenium 通过 chromedriver 进行抓取,通常它工作得很好 - 但是,对于这个特定的网站,我无法访问源 html,其中所有指向人们个人资料的链接都是可见的。

我编写了一个标准脚本,通常适用于任何其他动态网站。

links = []
driver = webdriver.Chrome()
driver.get('https://www.dlapiper.com/en-gb/people#t=All&sort=%40lastname%20ascending&f:CountriesID=[United%20Kingdom]')
time.sleep(5)
cookies_button = driver.find_element(By.ID, "onetrust-reject-all-handler")
cookies_button.click()
time.sleep(5)
html = driver.page_source
time.sleep(5)
soup = BeautifulSoup(html, 'html.parser')
parse = soup.find_all('a')
for item in parse:
    links.append(item.get('href'))
print(links)

但是,来自人员搜索块的链接无法进入 driver.page_source - 即使当我在 Chrome 中按“检查”时可以找到所有链接元素。我尝试增加 time.sleep(),但没有帮助。

我知道此页面上正在执行大量 JavaScript - 也许我需要手动激活其中一些?由于我不懂 JavaScript,因此非常感谢您的帮助。

javascript selenium-webdriver beautifulsoup screen-scraping
1个回答
0
投票

律师的联系方式位于 iframe 中...

1 Frame ID    myIframe
2 Frame Name  Unused
3 Frame Title People Index Hosted Search Page
4 Frame Source    https://www.dlapiper.com/en-US/coveosearchpages/people%20index%20hosted%20search%20page#t=All&sort=relevancy&f:CountriesID=[United%20States]
5 Frame Domain    www.dlapiper.com
6 Type    text/html
7 Mode    CSS1Compat
8 Language    en
9 Encoding    UTF-8
10    Modified    06/03/2024 19:25:06
11    Load Time   2.52 seconds
12    Source Size 361 bytes
13    Position    0 - 291 pixels
14    Viewport    1903 x 1500 pixels

您的脚本是否在子框架内扫描?

© www.soinside.com 2019 - 2024. All rights reserved.