【问题标题】:Data Scraping using urllib使用 urllib 进行数据抓取
【发布时间】:2017-04-03 20:56:57
【问题描述】:

我正在尝试从这个link 获取一些数据

要从上述链接获取开盘价,我使用以下代码

import urllib
from urllib.request import urlopen

symbols=['KEL', 'BYCO']
def keystats():
    try:
        response = urllib.request.urlopen('http://www.scstrade.com/StockScreening/SS_CompanySnapShot.aspx?symbol='+symbol)
        sourcecode = response.readlines()
        sourcecode = str(sourcecode)
        open_price = sourcecode.split('<span id="MainContent_lbl_open" style="font-weight:bold;">')[1].split('</span>')[0]
        print(open_price)

    except:
        print('Error') 

for symbol in symbols:        
    keystats()

我相信上面的代码应该可以给我8.20的开盘价结果。相反,我得到一个错误字符串。谁能告诉上面的代码有什么问题?

【问题讨论】:

    标签: python-3.x urllib


    【解决方案1】:

    问题在于您用来分隔的字符串,如果您检查 HTML,您会注意到该术语是:&lt;span id="MainContent_lbl_open"&gt;&lt;b&gt;8.20&lt;/b&gt;&lt;/span&gt;,因此您应该查找这些术语。

    代码:

    import urllib
    from urllib.request import urlopen
    
    symbols=['KEL', 'BYCO']
    def keystats():
        try:
            response = urllib.request.urlopen('http://www.scstrade.com/StockScreening/SS_CompanySnapShot.aspx?symbol='+symbol)
            sourcecode = response.readlines()
            sourcecode = str(sourcecode)
            open_price = sourcecode.split('<span id="MainContent_lbl_open"><b>')[1].split('</b></span>')[0]
            print(open_price)
    
        except:
            print('Error') 
    
    for symbol in symbols:        
        keystats()
    

    输出:

    8.20
    21.59
    

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 2018-09-22
      • 2018-02-07
      • 2018-06-23
      • 2022-06-13
      • 2020-07-27
      • 2020-06-10
      • 2014-05-13
      相关资源
      最近更新 更多