0

SEC ファイリングから .xml データを取得しようとしています。2番目の表にあります。 しかし、.xml を持たないページにたどり着いた場合は、最初で唯一のテーブルである html バージョンが必要です。 最初のテーブルが2つある場合は最初のテーブルを反復またはスキップする方法を理解し、1つしかない場合は最初のテーブルの最初の a['href'] を取得する方法を誰かが理解するのを手伝ってくれませんか?

from urllib2 import urlopen
import requests
from bs4 import BeautifulSoup
tableCount = 0
linklist = [https://www.sec.gov/Archives/edgar/data/1070789/000149315217011092/0001493152-17-011092-index.htm, https://www.sec.gov/Archives/edgar/data/1592603/000139160917000254/0001391609-17-000254-index.htm]
for l in linklist:
html = urlopen(l)
soup = BeautifulSoup(html.read().decode('latin-1', 'ignore'),"lxml")    
table = soup.findAll(class_='tableFile') # works for getting all .htm links
for item in table:
    tableCount +=1
url = table[0].a["href"]
if table.count >= 1:
    url = table[1].a["href"]
else:
    url = table.a["href"]
4

1 に答える 1

2

どちらの場合も常に最後のテーブルからの情報が必要なので、リストのインデックス -1 を使用して最後のテーブルを取得できます。

import requests
from bs4 import BeautifulSoup

urls = ['https://www.sec.gov/Archives/edgar/data/1070789/000149315217011092/0001493152-17-011092-index.htm',
        'https://www.sec.gov/Archives/edgar/data/1592603/000139160917000254/0001391609-17-000254-index.htm']
for url in urls:
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    tables = soup.findAll('table', class_='tableFile')

    # assume xml table always comes after html one
    table = tables[-1]
    for a in table.findAll('a'):
        print(a['href'])  # you may filter out txt or xsd here
于 2017-09-30T02:59:35.947 に答える