从一个网页内的其他选项卡获取内容

2024-05-14 12:48:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从这个网站的表格中获取信息,但我只从第一个“标签”中获取内容。当从选项卡1切换到选项卡2时,我看到url是相同的。 有没有办法获得一个或多个包含此网页中所有选项卡信息的表格

网页:https://newsweb.oslobors.no/search?category=&issuer=&fromDate=2010-01-01&toDate=2020-02-03&market=&messageTitle=

from pandas.io.html import read_html
from selenium import webdriver

today = "2020-02-03"
url = "https://newsweb.oslobors.no/search?category=&issuer=&fromDate=2010-01-01&toDate=2020-02-03&market=&messageTitle="
driver = webdriver.Firefox(executable_path = r'my gecko path')
driver.get(url)
driver.implicitly_wait(100)
table = driver.find_element_by_xpath('/html/body/div[1]/div/main/table')

table_html = table.get_attribute('outerHTML')
tables = read_html(table_html)[0]
print(tables)

Tags: nohttpsurl网页searchhtmldrivertable
1条回答
网友
1楼 · 发布于 2024-05-14 12:48:25

我已经用chrome浏览器完成了,希望firefox能给你同样的结果

使用无限循环并检查可用的next按钮。如果页面上不可用,它将中断循环。而不是使用隐式等待WebDriverWait()

代码: 解决方案1在每页上打印表格

from pandas.io.html import read_html
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pandas as pd
options = Options()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

today = "2020-02-03"
url = "https://newsweb.oslobors.no/search?category=&issuer=&fromDate=2010-01-01&toDate=2020-02-03&market=&messageTitle="
driver=webdriver.Chrome(options=options)
driver.get(url)

while True:
   WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'table.sc-frDJqD.iirWZt')))
   table = driver.find_element_by_css_selector('table.sc-frDJqD.iirWZt')
   table_html = table.get_attribute('outerHTML')
   tables = read_html(table_html)[0]
   print(tables)

   if len(driver.find_elements_by_xpath("//li[@class='disabled']//a[text()='⟩']"))>0:
       break;
   else:
       driver.execute_script("arguments[0].click();", driver.find_element_by_xpath("//li//a[text()='⟩']"))

解决方案2将提供包含所有记录的单个数据帧

from pandas.io.html import read_html
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import pandas as pd
options = Options()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

today = "2020-02-03"
url = "https://newsweb.oslobors.no/search?category=&issuer=&fromDate=2010-01-01&toDate=2020-02-03&market=&messageTitle="
driver=webdriver.Chrome(options=options)
driver.get(url)
df=pd.DataFrame()
while True:
   WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'table.sc-frDJqD.iirWZt')))
   table = driver.find_element_by_css_selector('table.sc-frDJqD.iirWZt')
   table_html = table.get_attribute('outerHTML')
   tables = read_html(table_html)[0]
   #print(tables)
   df = df.append(tables, ignore_index=True)
   if len(driver.find_elements_by_xpath("//li[@class='disabled']//a[text()='⟩']"))>0:
       break;
   else:
       driver.execute_script("arguments[0].click();", driver.find_element_by_xpath("//li//a[text()='⟩']"))

print(df)

输出

                  Tid  ...                                           Kategori
0    03.02.2020 15:47  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
1    03.02.2020 15:10  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
2    03.02.2020 14:43  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
3    03.02.2020 14:22  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
4    03.02.2020 14:21  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
5    03.02.2020 14:21  ...                         FLAGGINGFLAGGINGWWFLAGGING
6    03.02.2020 14:09  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
7    03.02.2020 13:36  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
8    03.02.2020 13:30  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
9    03.02.2020 13:22  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
10   03.02.2020 13:21  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
11   03.02.2020 13:21  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
12   03.02.2020 12:44  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
13   03.02.2020 12:14  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
14   03.02.2020 12:10  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
15   03.02.2020 11:52  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
16   03.02.2020 11:09  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
17   03.02.2020 11:09  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
18   03.02.2020 11:05  ...  INNSIDEINFORMASJONINNSIDEINFORMASJONWWINNSIDEI...
19   03.02.2020 11:05  ...  INNSIDEINFORMASJONINNSIDEINFORMASJONWWINNSIDEI...
20   03.02.2020 10:49  ...  MELDING FRA ANDRE AKTØRERMELDING FRA ANDRE AKT...
21   03.02.2020 10:40  ...  KAPITAL- OG STEMMERETTSENDRINGERKAPITAL- OG ST...
22   03.02.2020 10:37  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
23   03.02.2020 09:56  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
24   03.02.2020 09:30  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
25   03.02.2020 08:30  ...  INNSIDEINFORMASJONINNSIDEINFORMASJONWWINNSIDEI...
26   03.02.2020 08:15  ...  SÆRLIG OBSERVASJONSÆRLIG OBSERVASJONWWSÆRLIG O...
27   03.02.2020 08:14  ...  SÆRLIG OBSERVASJONSÆRLIG OBSERVASJONWWSÆRLIG O...
28   03.02.2020 08:13  ...  SÆRLIG OBSERVASJONSÆRLIG OBSERVASJONWWSÆRLIG O...
29   03.02.2020 08:12  ...  SÆRLIG OBSERVASJONSÆRLIG OBSERVASJONWWSÆRLIG O...
..                ...  ...                                                ...
470  24.01.2020 13:51  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
471  24.01.2020 13:50  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
472  24.01.2020 13:50  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
473  24.01.2020 13:50  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
474  24.01.2020 13:50  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
475  24.01.2020 13:50  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
476  24.01.2020 13:47  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
477  24.01.2020 13:37  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
478  24.01.2020 13:37  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
479  24.01.2020 13:30  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
480  24.01.2020 13:15  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
481  24.01.2020 13:15  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
482  24.01.2020 13:07  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
483  24.01.2020 13:05  ...    RENTEREGULERINGRENTEREGULERINGWWRENTEREGULERING
484  24.01.2020 13:05  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
485  24.01.2020 13:00  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
486  24.01.2020 12:50  ...  INNSIDEINFORMASJONINNSIDEINFORMASJONWWINNSIDEI...
487  24.01.2020 12:35  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
488  24.01.2020 12:25  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
489  24.01.2020 12:14  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
490  24.01.2020 12:07  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
491  24.01.2020 12:03  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
492  24.01.2020 12:02  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
493  24.01.2020 11:59  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
494  24.01.2020 11:56  ...  NOTERING / OPPTAK AV VERDIPAPIRERNOTERING / OP...
495  24.01.2020 11:47  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
496  24.01.2020 11:36  ...  ANNEN INFORMASJONSPLIKTIG REGULATORISK INFORMA...
497  24.01.2020 10:39  ...  INNSIDEINFORMASJONINNSIDEINFORMASJONWWINNSIDEI...
498  24.01.2020 10:06  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...
499  24.01.2020 09:53  ...  IKKE-INFORMASJONSPLIKTIGE PRESSEMELDINGERIKKE-...

[500 rows x 7 columns]

相关问题 更多 >

    热门问题