逐行提取符号

时间:2019-02-25 06:10:48

标签: python web-scraping

我有一个问题,是要从仅由'|'划定的单个换行符中提取一个具有不同len的字符串。和空格。看一下以下链接

http://ftp.nasdaqtrader.com/dynamic/SymDir/nasdaqlisted.txt

我正在尝试提取上述链接第一栏中的所有公司符号。但是,我想不出一个可以完成此操作并以将来易于提取的方式存储的逻辑循环。

我希望任何pr0都有意见!

编辑:

嗨,我了解您的一些保留。我将对如何从逻辑上考虑解决方案感到非常满意。

2 个答案:

答案 0 :(得分:1)

我希望这对您直接从文本页面抓取数据的情况有所帮助:

import requests

response = requests.get('http://ftp.nasdaqtrader.com/dynamic/SymDir/nasdaqlisted.txt')
document = response.text.splitlines()

for line in document[1:-1]:      #This helps you skip unnecessary lines
    data = line.split('|')
    symbol = data[0]
    print(symbol)

您可以跳过document的第一行和最后一行,因为它们与您要查找的symbols没有关联。另外,splitlines会为您创建行列表,您可以使用列表索引跳过第一行和最后一行。

答案 1 :(得分:0)

看看python csv module

import csv

with open('nasdaqlisted.txt', 'r') as csvFile:
    reader = csv.reader(csvFile, delimiter='|')
    for row in reader:
        print(row[0])

csvFile.close()

您只需要将定界符更改为'|',它就可以立即使用。