【发布时间】:2018-12-09 00:46:06
【问题描述】:
我遇到无法从以下链接解析数据的情况,例如:
https://www.bseindia.com/stock-share-price/avanti-feeds-ltd/avanti/512573/
从这个网页我想填充高低表。我尝试了许多 table 和 div 的组合但徒劳无功。下面是我的python beautifulsoup 代码(BS4)
import csv
import requests
import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
f = open('bse.csv', 'w', newline = '')
writer = csv.writer(f)
with open("bselist.csv") as f:
for row in csv.reader(f):
for stock in row:
url = "https://www.bseindia.com/stock-share-price/{}".format(stock)
soup = BeautifulSoup(urllib.request.urlopen(url).read(), "lxml")
mydivs = soup('div', {"class": "newscripcotent5"})[0].find_all('span')
writer.writerow([stock] + mydivs)
print([stock] + mydivs)
URL 为简单起见,我提供了指向文件 bselist.csv 中包含的记录之一的直接链接。我正在寻找 div id "highlow"
它只是给我以下输出
avanti-feeds-ltd/avanti/512573/
没有我要找的桌子。
理想情况下,输出应该类似于以下内容:
avanti-feeds-ltd/avanti/512573/ 52 Week High (adjusted) 999.00(13/11/2017)
avanti-feeds-ltd/avanti/512573/ 52 Week Low (adjusted) 410.26(05/06/2018)
avanti-feeds-ltd/avanti/512573/ 52 Week High (Unadjusted) 3,000.00(13/11/2017)
avanti-feeds-ltd/avanti/512573/ 52 Week Low (Unadjusted) 535.50(29/06/2018)
avanti-feeds-ltd/avanti/512573/ Month H/L 659.34/410.26
avanti-feeds-ltd/avanti/512573/ Week H/L 625.25/508.82
【问题讨论】:
标签: python csv beautifulsoup