违反协议(_ssl.c:590)

2024-04-26 23:25:44 发布

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

我试图运行一个代码,发送一个搜索词到谷歌和记录谷歌的建议。在

import requests
import re
import time
from random import randint
import pandas as pd
from param_config import config
import cPickle

START_SPELL_CHECK="<span class=\"spell\">Showing results for</span>"
END_SPELL_CHECK="<br><span class=\"spell_orig\">Search instead for"

HTML_Codes = (
        ("'", '&#39;'),
        ('"', '&quot;'),
        ('>', '&gt;'),
        ('<', '&lt;'),
        ('&', '&amp;'),
)

def spell_check(s):
    q = '+'.join(s.split())
    time.sleep(  randint(0,2) ) #relax and don't let google be angry
    r = requests.get("https://www.google.co.uk/search?q="+q)
    content = r.text
    start=content.find(START_SPELL_CHECK) 
    if ( start > -1 ):
        start = start + len(START_SPELL_CHECK)
        end=content.find(END_SPELL_CHECK)
        search= content[start:end]
        search = re.sub(r'<[^>]+>', '', search)
        for code in HTML_Codes:
            search = search.replace(code[1], code[0])
        search = search[1:]
    else:
        search = s
    return search ;

searches = [ "metal plate cover gcfi", 'artric air portable", "roll roofing lap cemet", "basemetnt window", "vynal grip strip", "lawn mower- electic" ]
speel_check_search=[]
for i,search in enumerate(searches):
    speel_check_search.append(spell_check(str(search)))

代码在一段时间内运行良好,但如果搜索量较大,则代码将运行一段时间,然后终止,并出现以下错误: requests.exceptions.SSLError:EOF违反了协议(_ssl.c:590)


Tags: 代码importreforsearchcheckcodecontent