1

我尝试了 Rasha Ashraf 文章“Scraping EDGAR with Python”中的 Python 代码。我猜他使用了现在在 python 3 中无效的 urllib2。因此,我将其更改为 urllib。

我可以带以下 Edgar 网页。但是,无论我如何尝试修复代码,字数统计的结果都是 0。请帮我解决这个问题。仅供参考,我在 URL 页面上手动检查,以便“地址”、“类型”和“交易”分别出现 5 次、9 次和 49 次。尽管如此,我的错误 python 结果显示这三个单词的结果为 0。

这是我修改的Rasha Ashraf的python代码(只有urllib部分和网址)。原始 URL 包含大量文本内容。所以我把它改成了一个更简单的网页页面。

import time
import csv
import sys

CIK = '0001018724'
Year= '2013'
string_match1= 'edgar/data/1018724/000112760220028651/0001127602-20-028651.txt'
url3= 'http://www.sec.gov/Archives/'+string_match1

import urllib.request
 
response3= urllib.request.urlopen(url3)
#output = response3.read()
#print(output)
words=  ['ADDRESS','TYPE', 'transaction']
count= {}
for elem in words:
    count[elem]= 0
    
for line in response3:
    elements= line.split()
    for word in words:
       count[word]= count[word] + elements.count(word)

print (CIK)
print (Year)
print (url3)
print (count)

=>到目前为止我的代码的结果

0001018724

2013

http://www.sec.gov/Archives/edgar/data/1018724/000112760220028651/0001127602-20-028651.txt

{'ADDRESS': 0, 'TYPE': 0, 'transaction': 0}
4

1 回答 1

0

要正确计算 3 个字符串(不是单词!)中的每一个出现在文件中的次数,请尝试以下操作:

import requests
url = "http://www.sec.gov/Archives/edgar/data/1018724/000112760220028651/0001127602-20-028651.txt"
req = requests.get(url)

words = ['address','type','transaction']
filing = req.text
for word in words:
    print(word,': ',filing.lower().count(word))

输出:

address :  5
type :  9
transaction :  49
于 2020-11-12T23:53:52.180 回答