问题描述
我需要获取文本文件中存在的所有url的结果,如下所示
www.google.com
example.com
facebook.com
文件中包含超过1000个网址,我需要通过文件逐个解析网址以测试结果
buf = BytesIO()
with open(data.txt) as fi:
files = fi.readlines()
for web in files:
c = pycurl.Curl()
c.setopt(c.URL,'https://'+ web )
c.setopt(c.SSL_VERIFYPEER,0)
c.setopt(c.SSL_VERIFYHOST,0)
c.setopt(c.TIMEOUT,3)
c.setopt(c.WRITEDATA,buf)
c.setopt(c.RESOLVE,[ web + ':443:203.210.7.46'])
c.perform()
它给出一个 Traceback c.perform()pycurl.error:(3,'')
但是,如果我直接将一个网址直接放在 c.URL 中,则效果很好。有人可以帮我吗谢谢
解决方法
从readlines
获得的行以换行符\n
结尾,因此循环的第一次迭代会将c.URL
设置为:
'https://www.google.com\n'
pycurl告诉您这是意外的情况:错误3为CURLE_URL_MALFORMAT,“ URL格式不正确”。
呼叫web.strip()
将使您的行没有换行符终止(请参见here)。