python:TypeError:期望的字符串或缓冲区

use*_*744 -1 python

我有这个代码,从网站解析数据:

f = open('a url')
new = f.read()
derp = re.findall(r'<ol class="lh-192 trendingnow_trend-list fw-b">(.*?)</ol>', new)
line = derp

def striphtml2(data):
    p = re.compile(r'\d')
    return p.sub(' ', data)
new = striphtml2(line)
#removes anything in <>
def striphtml(data):
    p = re.compile(r'<.*?>')
    return p.sub(' ', data)
ninja = striphtml(new)
Run Code Online (Sandbox Code Playgroud)

但每次我运行它,我得到这个:

TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)

我不知道它有什么问题.

Mar*_*ers 6

您正在将一个列表传入该函数.line不是字符串,而是整个字符串列表.

循环遍历:

for line in derp:
Run Code Online (Sandbox Code Playgroud)