使用Selenium的python中的WebScraping问题

时间:2018-07-30 16:30:03

标签: python selenium web-scraping

我正在尝试从this website called Anhembi抓取数据

但是当我尝试使用硒中的所有选项来查找元素时,我什么也没得到。有人知道为什么会这样吗?

我已经尝试过:

DECLARE table_cursor CURSOR LOCAL FAST_FORWARD FOR
SELECT
    C.TABLE_SCHEMA,
    c.TABLE_NAME,
    c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS c
JOIN sys.objects o
    ON o.name = c.TABLE_NAME
WHERE o.type = 'U'
AND C.DATA_TYPE = 'Datetime'

DECLARE @schema SYSNAME
DECLARE @table SYSNAME
DECLARE @column SYSNAME
DECLARE @sql NVARCHAR(1000)

CREATE TABLE #Data (SchemaName SYSNAME, TableName SYSNAME, ColumnName SYSNAME, MaxDate DATETIME)

OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @schema, @table, @column

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @sql = 'INSERT INTO #Data (SchemaName, TableName, ColumnName, MaxDate) SELECT '''+@schema+''', '''+@table+''', '''+@column+''', MAX(['+@column+']) FROM ['+@schema+'].['+@table+']'
    EXEC sp_executesql @sql

    FETCH NEXT FROM table_cursor INTO @schema, @table, @column
END

CLOSE table_cursor
DEALLOCATE table_cursor

SELECT * FROM #Data
DROP TABLE #Data

通过该操作创建了一个driver.find_element_by_xpath('//*[@class="agenda_result_laco_box"]') ,以单击每一个,并获取我需要的信息,其中包括日期,网站和活动名称。我该怎么办?

1 个答案:

答案 0 :(得分:1)

很显然,其中涉及一个 iframe ,您需要切换Web驱动程序的焦点才能与iframe/frameset/frame中的元素进行交互。

您可以尝试使用此代码

driver.get("http://www.anhembi.com.br/agenda/") 

driver.switch_to.frame(driver.find_element_by_css_selector("iframe[src='http://intranet.spturis.com.br/intranet/modulos/booking/anhembisite_busca.php']"))
all_data = driver.find_elements_by_css_selector("div.agenda_result_laco_box")

print(len(all_data))

for data in all_data:
  print(data.text)