【问题标题】:Beautifulsoup/Selenium: Can't click on a button and fetch url using pythonBeautifulsoup/Selenium:无法单击按钮并使用 python 获取 url
【发布时间】:2021-10-18 06:00:29
【问题描述】:

我正在从 Linkedin Sales Navigator 中抓取公司列表及其潜在客户信息。 虽然我能够从销售导航器中抓取公司名称,但在抓取潜在客户信息时遇到了问题。例如:如果 XYZ 是一家公司,而 ABC、PQR、MNO 是他们的潜在客户,我无法抓取他们的信息,例如:“姓名”、“职务”、“联系信息”。

以前,我能够提取记录,但由于销售导航平台改变了它的结构 - 以前,单击潜在客户时,它会打开一个 URL,从那里我能够提取记录。但是现在,该 url 被隐藏,并且潜在客户的个人资料在同一页面上打开。之后,URL 就可见了。

我试图点击潜在客户,然后打开网址并抓取必要的信息..但它失败了。

我尝试在其他调用之间引入 time.sleep,但这并没有太大帮助。 这是我的代码。

lead_links = []
button = browser.find_elements_by_class_name('button--unstyled t-16 font-weight-600 nowrap-ellipsis')
for b in button:
    b.click()
    leads = soup.find_all("div", attrs={"class": "artdeco-entity-lockup__title artdeco-entity-lockup__title--alt-link ember-view"})
    for lead in leads:
        lead_links.append(lead.a["href"])
        print(leads)

我在这里缺少什么?请帮忙!

【问题讨论】:

  • 错误是什么?
  • 没有这样的错误..但最初我得到了一个 Nonetype 错误,因为 div 标签中没有 url..这就是我知道他们在网络上改变了他们的设计的方式。

标签: python selenium selenium-webdriver beautifulsoup


【解决方案1】:

好像有问题

button = browser.find_elements_by_class_name('button--unstyled t-16 font-weight-600 nowrap-ellipsis')

在 selenium 中,类名不支持空格,请尝试将其更改为 css,如下所示:

button = browser.find_elements_by_css_selector("button--unstyled.t-16.font-weight-600.nowrap-ellipsis")

【讨论】:

  • 是的,我也试过了,它没有用..有潜在客户列表,它应该一个一个点击每个人(潜在客户)......当它点击一个潜在客户时,打开一个新的网址。信息被刮掉,它再次进入列表并刮掉第二条线索。这种情况一直持续到没有线索为止。
【解决方案2】:

给我看这个页面源代码的sn-p 如果您更改页面或显示另一个页面,您还需要更改对它的引用,使用 selenium webdriver 库可以:

url2 = page1.current_url

然后你可以抓取新页面 也有可能在当前页面中打开新页面的 html 文档(内置模块,您可以在现有页面中重新打开),但就像我说的那样,您必须显示页面代码它的行为方式和方式看起来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多