我的问题可能早些时候问过,但我为之工作的场景没有得到任何帮助。
尝试了不同的方法和事情,但仍然没有运气,任何帮助都将不胜感激
问题
我正在尝试从URL加载文本文件https://www.sec.gov/Archives/edgar/cik-lookup-data.txt,这样我就可以修改数据并创建一个数据帧。
示例:-来自链接的数据
1188百老汇LLC:00001372374:
119博伊斯,LLC:00001633290:
11900 EAST ARTESIA BOULEVARD,LLC:00001639215:
哈兰道11900号LLC:00001398414:
11:11资本公司:0001463262:
我应该得到低于输出
Name | number
1188 BROADWAY LLC | 0001372374
119 BOISE, LLC | 0001633290
11900 EAST ARTESIA BOULEVARD, LLC | 0001639215
11900 HARLAN ROAD LLC | 0001398414
11:11 CAPITAL CORP. | 0001463262
我在加载文本文件时遇到了第一个问题,我一直在获取403 url HTTPError:HTTP错误403:禁止
使用的参考:
- 给定文本文件的URL,读取文本文件内容的最简单方法是什么
- Python请求。403禁止
我的代码:-
import urllib.request # the lib that handles the url stuff
data = urllib.request.urlopen("https://www.sec.gov/Archives/edgar/cik-lookup-data.txt") # it's a file like object and works just like a file
for line in data: # files are iterable
print (line)
返回的错误消息显示:
您的请求已被识别为自动化网络的一部分可接受策略之外的工具,并且将被管理,直到已采取行动申报您的流量。请申报您的通过更新用户代理以包含特定公司的流量信息
您可以按如下方式解决此问题:
import urllib
url = "https://www.sec.gov/Archives/edgar/cik-lookup-data.txt"
hdr = {'User-Agent': 'Your Company Name admin@domain.com'} #change as needed
req = urllib.request.Request(url, headers=hdr)
data = urllib.request.urlopen(req, timeout=60).read().splitlines()
>>> data[:10]
[b'!J INC:0001438823:',
b'#1 A LIFESAFER HOLDINGS, INC.:0001509607:',
b'#1 ARIZONA DISCOUNT PROPERTIES LLC:0001457512:',
b'#1 PAINTBALL CORP:0001433777:',
b'$ LLC:0001427189:',
b'$AVY, INC.:0001655250:',
b'& S MEDIA GROUP LLC:0001447162:',
b'&TV COMMUNICATIONS INC.:0001479357:',
b'&VEST DOMESTIC FUND II KPIV, L.P.:0001802417:',
b'&VEST DOMESTIC FUND II LP:0001800903:']
这是不允许的,所以您得到的response_code=403。在抓取任何网页时,最好检查robots.txt文件。robots.txt文件告诉搜索引擎爬虫可以在您的网站上访问哪些URL。这主要是为了避免您的网站因请求而过载;然而,它并不是一种阻止网页进入谷歌的机制。
在您的情况下,它是https://www.sec.gov/robots.txt