【问题标题】:Assistance with selenium web scraping协助 selenium web 抓取
【发布时间】:2016-03-14 16:21:01
【问题描述】:

我正在努力挖掘音乐家获得的荣誉勋章的细节!所以here 是指向音乐家列表的链接。然后,当您单击每个视图的视图时,它有一个整洁的小表,其中包含 RANK、COMPANY、DATE OF ISSUE 等。我想从该表中抓取数据。

from selenium import webdriver

driver = webdriver.Chrome("/Users/ashkij/Desktop/chromedriver")
driver.get("http://www.cmohs.org/search-results.php?q=&x=40&y=9&rank=Musician&organization=&division=&company=&conflict=")
person = driver.find_elements_by_class_name("div.floatElement.recipientView")
details = driver.find_elements_by_class_name("div.detailDatacol1") 
for i in details:
    print(i.text)

【问题讨论】:

  • 有什么问题?
  • 它不打印...任何东西。暗示我显然做错了什么,即使我将驱动程序指向(例如)具有相关数据的 Datacol1。

标签: python python-3.x selenium web web-scraping


【解决方案1】:

首先收集所有视图hrefs,然后访问每个视图并收集目标数据。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://www.cmohs.org/search-results.php?q=&x=40&y=9&rank=Musician&organization=&division=&company=&conflict=')

# get hrefs
view_links = driver.find_elements_by_class_name('recipientView')
for index, view in enumerate(view_links):
    html = view.get_attribute('innerHTML')
    href = html.split('"')[1]

    view_links[index] = href

# visit each href and get data
for href in view_links:
    driver.get(href)

    detail_data = driver.find_elements_by_class_name('dataBar')
    for detail in detail_data:
        print(detail.text)

【讨论】:

  • 嗯,非常感谢您的开始!不过,我想要得到的是在您单击“查看”之后 之后表格中的信息。这只是打印 URL 上列出的信息。
  • @thewhitetie 已更新。抱歉,第一次没明白你的意思
猜你喜欢
  • 2023-03-23
  • 2020-08-14
  • 2017-11-23
  • 2020-11-15
  • 1970-01-01
  • 2023-02-18
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多