在文本文件中解析googlecse html时,TypeError:应为string或byteslike obj

2024-09-26 22:51:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如果有人问过这样的问题,我很抱歉,但我是Python的初学者,不知道这一点。我最近创建了一个googlecse来查看linkedin并使用this返回结构化数据。这个API工作得很好,但是现在我试图把代码放在一个文本文档中,以便在我的计算机上进行解析。每当尝试使用正则表达式运行它时,它都会返回:

Traceback (most recent call last):
  File "C:\Users\My_PC\Desktop\CSE.py", line 41, in <module>
    snippet = re.search(snip,cse).group(1)
  File "C:\Users\My_PC\AppData\Local\Programs\Python\Python36-32\lib\re.py", line 182, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object

所以我试着把b放在正则表达式前面,把它转换成字节。这导致了同样的错误,所以我尝试在regex中用utf-8编码,这导致了同样的错误。在

再一次,我很抱歉以前有人问过这个问题,但我就是想不通。有人能告诉我我做错了什么吗?在

下面是我的代码,如果有帮助的话:

^{pr2}$

Tags: 代码inpyresearchstringmy错误
2条回答

我明白了!我不得不把剪报转换成搜索()编成细绳。在

澄清一下,我的印象是snip中的regex已经是字符串格式的,我不认为result是一个问题,因为它是我正在搜索的内容。实际上,我的印象是它们都必须是字节,因为信息是从互联网上获取的。在

我回去是为了减少代码,但以下是我的参考:

with open('list.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        name = row[1] + ' ' + row[2] + ' ' +row[4]
        print("This trial will search for", name)
        results = google_search(name, my_api_key, my_cse_id, num=1)
        for result in results:
            print(result)
            snip = r'View\s<b>(.+?)&nb'
            snippet = re.search(str(snip),str(result)).group(1)
            with open("cse_result.txt", "w+") as nameLookup:
                nameLookup.write(snippet)
            print()

re.search()应为字符串或类似于字节的对象,如其所述。您给它cse,这是代码中的一个文件对象。在

相关问题 更多 >

    热门问题