社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何使用漂亮的soup和python为纳斯达克网站中的表提取HTML代码

Mohamed Suhail Irfan Khazi • 5 年前 • 1966 次点击  

所以基本上,我想在下面的链接中读取这个表的HTML代码: https://www.nasdaq.com/symbol/aapl/revenue-eps

为了做到这一点,我用了巨蟒和漂亮的汤。

import urllib
from bs4 import BeautifulSoup
import csv
url = urllib.urlopen("https://www.nasdaq.com/symbol/aapl/revenue-eps")
mylist = []
soup = BeautifulSoup(url,"html.parser")
my_table = soup.find('table',{'class':'ipos'})
print(my_table)

上面的代码是我所尝试的。当我右键单击并选择检查表时,我找到的表名称为“ipos”,但当我试图将其放入此代码中时,它似乎不起作用。我得到的唯一输出是“无”

我已经用另一个站点测试过了,它运行得很好。当我使用该链接并使用该HTML代码中表的名称时,我就能够完美地获得该表的HTML代码。然而,这一点并非如此。对此,任何帮助都将不胜感激。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38120
 
1966 次点击  
文章 [ 2 ]  |  最新文章 5 年前
salman wahed
Reply   •   1 楼
salman wahed    5 年前

表加载到 iframe . 如果检查此页发出的网络请求,则会发现如下请求:

https://fundamentals.nasdaq.com/redpage.asp?selected=AAPL&market=NASDAQ-GS&LogoPath=https%3a%2f%2fwww.nasdaq.com%2flogos%2fAAPL.GIF&coname=Apple%20Inc.

这是将表加载到此页的URL。使用上面的URL可以找到表。

import urllib
from bs4 import BeautifulSoup
import csv
url = urllib.urlopen("https://fundamentals.nasdaq.com/redpage.asp?selected=AAPL&market=NASDAQ-GS&LogoPath=https%3a%2f%2fwww.nasdaq.com%2flogos%2fAAPL.GIF&coname=Apple%20Inc.")
mylist = []
soup = BeautifulSoup(url,"html.parser")
my_table = soup.find('table',{'class':'ipos'})
print(my_table)
Andrej Kesely
Reply   •   2 楼
Andrej Kesely    5 年前

你看到的桌子在 <iframe> . 加载此内容 <iframe> 您可以使用此脚本:

import requests
from bs4 import BeautifulSoup

url = "https://www.nasdaq.com/symbol/aapl/revenue-eps"
soup = BeautifulSoup(requests.get(url).text,"html.parser")

iframe_url = soup.select_one('iframe#frmMain')['src']

requests.packages.urllib3.disable_warnings()
soup = BeautifulSoup(requests.get(iframe_url, verify=False).text,"html.parser")

table = soup.select_one('table.ipos')

for tr in table.select('tr'):
    for td in tr.select('td'):
        print('{: <30}'.format(td.get_text(strip=True)), end='')
    print()

印刷品:

Revenue / EPS Summary *                                     Revenue / EPS Summary *                                     
                              Revenue / EPS Summary *                                     


Fiscal Quarter                                              2019(Fiscal Year)                                           2018(Fiscal Year)                                           2017(Fiscal Year)             


December                                                                                                                
Revenue                       $84,310(m)                    $88,293(m)                    $78,351(m)                    
EPS                           4.18 (12/29/2018)             3.89 (12/30/2017)             3.36 (12/31/2016)             
Dividends                     0.73                          0.63                          0.57                          

March                                                                                                                   
Revenue                       $58,015(m)                    $61,137(m)                    $52,896(m)                    
EPS                           2.48 (3/30/2019)              2.74 (3/31/2018)              2.1 (4/1/2017)                
Dividends                     0.77                          0.73                          0.63                          

June                                                                                                                    
Revenue                       $53,809(m)                    $53,265(m)                    $45,408(m)                    
EPS                           2.2 (6/29/2019)               2.36 (6/30/2018)              1.68 (7/1/2017)               
Dividends                     0.77                          0.73                          0.63                          

September  (FYE)                                                                                                        
Revenue                                                     $62,900(m)                    $52,579(m)                    
EPS                                                         2.92 (9/29/2018)              2.07 (9/30/2017)              
Dividends                                                   0.73                          0.63                          


Totals                                                                                                                  
Revenue                       $196,134(m)                   $265,595(m)                   $229,234(m)                   
EPS                           8.86                          11.91                         9.21                          
Dividends                     2.27                          2.82                          2.46                          

Previous 3 Years