从文本文件中读取多个 url 并使用 pycurl 查找 RESOLVE 结果

Reading multiple urls from text file and find RESOLVE results using pycurl

我需要获取文本文件中所有 url 的结果,如下所示

www.google.com
example.com
facebook.com

文件中有超过 1000 个 URL,我需要通过文件一个一个地解析 url 以测试结果

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,'')

但如果我直接将一个 url 放在 c.URL 中,它会完美地工作。有人可以帮我解决这个问题吗?谢谢

您从 readlines 获得的行以换行符 \n 结尾,因此循环的第一次迭代会将 c.URL 设置为:

'https://www.google.com\n'

并且 pycurl 告诉你这是意外的:错误 3 是 CURLE_URL_MALFORMAT,“URL 的格式不正确”。

调用 web.strip() 将得到没有终止换行符的行(参见 here)。