Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从谷歌查询中获取URL?_Python_Html_Url_Google Search - Fatal编程技术网

Python 如何从谷歌查询中获取URL?

Python 如何从谷歌查询中获取URL?,python,html,url,google-search,Python,Html,Url,Google Search,嗨,伙计们,我已经尝试从谷歌的网址,但它的返回0网址 这是我的代码怎么了 import string, sys, time, urllib2, cookielib, re, random, threading, socket, os, time def Search(go_inurl,maxc): header = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)', 'Mozilla/5.

嗨,伙计们,我已经尝试从谷歌的网址,但它的返回0网址

这是我的代码怎么了

    import string, sys, time, urllib2, cookielib, re, random, threading, socket, os, time
def Search(go_inurl,maxc):
    header = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',
          'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',
          'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',
      'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',
      'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',
      'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',
      'Microsoft Internet Explorer/4.0b1 (Windows 95)',
      'Opera/8.00 (Windows NT 5.1; U; en)',
      'amaya/9.51 libwww/5.4.0',
      'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',
      'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
      'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
      'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',
      'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',
      'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]']
    gnum=100
    uRLS = []
    counter = 0
        while counter < int(maxc):
                jar = cookielib.FileCookieJar("cookies")
                query = 'q='+go_inurl
                results_web = 'http://www.google.com/cse?'+'cx=011507635586417398641%3Aighy9va8vxw&ie=UTF-8&'+'&'+query+'&num='+str(gnum)+'&hl=en&lr=&ie=UTF-8&start=' + repr(counter) + '&sa=N'
                request_web = urllib2.Request(results_web)
        agent = random.choice(header)
                request_web.add_header('User-Agent', agent)
        opener_web = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
                text = opener_web.open(request_web).read()
        strreg = re.compile('(?<=href=")(.*?)(?=")')
                names = strreg.findall(text)
        counter += 100
                for name in names:
                        if name not in uRLS:
                                if re.search(r'\(', name) or re.search("<", name) or re.search("\A/", name) or re.search("\A(http://)\d", name):
                                        pass
                elif re.search("google", name) or re.search("youtube", name) or re.search(".gov", name) or re.search("%", name):
                                        pass
                else:
                                        uRLS.append(name)
    tmpList = []; finalList = []
        for entry in uRLS:
        try:
            t2host = entry.split("/",3)
            domain = t2host[2]
            if domain not in tmpList and "=" in entry:
                finalList.append(entry)
                tmpList.append(domain)
        except:
            pass
    print "[+] URLS (sorted)   :", len(finalList)
    return finalList
import string、sys、time、urllib2、cookielib、re、random、threading、socket、os、time
def搜索(go_inurl,maxc):
header=['Mozilla/4.0(兼容;MSIE 5.0;SunOS 5.10 sun4u;X11)',
“Mozilla/5.0(X11;U;Linux i686;en-US;rv:1.9.2.2pre)Gecko/20100207 Ubuntu/9.04(jaunty)Namoroka/3.6.2pre”,
'Mozilla/4.0(兼容;MSIE 7.0;Windows NT 5.1;先锋浏览器;',
“Mozilla/4.0(兼容;MSIE 5.5;Windows NT 5.0)”,
“Mozilla/4.0(兼容;MSIE 7.0b;Windows NT 5.1)”,
“Mozilla/5.0(Windows;U;Windows NT 6.0;en-US;rv:1.9.0.6)”,
“Microsoft Internet Explorer/4.0b1(Windows 95)”,
‘Opera/8.00(Windows NT 5.1;U;en)’,
“amaya/9.51 libwww/5.4.0”,
“Mozilla/4.0(兼容;MSIE 5.0;AOL 4.0;Windows 95;c_athome)”,
“Mozilla/4.0(兼容;MSIE 5.5;Windows NT)”,
“Mozilla/5.0(兼容;Konqueror/3.5;Linux)KHTML/3.5.5(类似Gecko)(Kubuntu)”,
“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0;ZoomSpider.net bot;.net CLR 1.1.4322)”,
'Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;QihooBot 1.0qihoobot@qihoo.net)',
“Mozilla/4.0(兼容;MSIE 5.0;Windows ME)Opera 5.11[en]”
gnum=100
URL=[]
计数器=0
当计数器streg=re.compile(“(?我看到了两个问题。首先,您使用的是一个自定义Google搜索,它(显然)似乎只返回来自Google.com的结果。这与一个正则表达式相结合,可以查找url中出现的“Google”(
re.search(“Google”,name)
),如果未将其添加到URL列表中,将导致此自定义搜索的URL列表始终保持为空

此外,更重要的是,您的逻辑不正确。使用固定格式,您当前可以执行以下操作:

if name not in uRLS:
    if re.search(r'\(', name) or re.search("<", name) or re.search("\A/", name) or re.search("\A(http://)\d", name):
        pass
    elif re.search("google", name) or re.search("youtube", name) or re.search(".gov", name) or re.search("%", name):
        pass
    else:
        uRLS.append(name)
如果名称不在URL中:

如果是re.search(r'\(',name)或re.search(我看到了两个问题。首先,你使用的是一个定制的谷歌搜索,它(显然)似乎只返回来自Google.com的结果。这与一个正则表达式相结合,可以在url中查找“Google”的出现(
re.search(“Google”,name)
),如果未将其添加到URL列表中,将导致此自定义搜索的URL列表始终保持为空

此外,更重要的是,您的逻辑不正确。使用固定格式,您当前可以执行以下操作:

if name not in uRLS:
    if re.search(r'\(', name) or re.search("<", name) or re.search("\A/", name) or re.search("\A(http://)\d", name):
        pass
    elif re.search("google", name) or re.search("youtube", name) or re.search(".gov", name) or re.search("%", name):
        pass
    else:
        uRLS.append(name)
如果名称不在URL中:

如果re.search(r'\(',name)或re.search(jro)是正确的,而且Google会定期更改其结果的格式,不是每月更改一次,而是每年更改一次以上,那么您的正则表达式可能会失败,您需要对其进行修改


我面临着与你过去类似的问题,我选择了一个简单的解决方案,这些家伙提供了一个非常有效的,你提供关键词,他们抓取和解析谷歌结果,并返回链接、锚、描述等。这是一个不同的解决方案,但也可以帮助你。

jro是正确的t、 此外,谷歌会定期更改搜索结果的格式,不是每月更改一次,而是每年更改一次以上,那么您的正则表达式可能会失败,您需要修改它


我面临着与你过去类似的问题,我选择了一个简单的解决方案,这些家伙提供了一个非常有效的,你提供关键词,他们抓取和解析谷歌结果,并返回链接、锚、描述等。这是一个不同的解决方案,但也可以帮助你。

请修复你r缩进。它似乎是完全随机的。请修复您的缩进。它似乎是完全随机的。1.由于您的自定义搜索只返回带有“google”的url,因此
re.search(“google”,名称)
检查始终返回
True
:删除此函数调用。--2.从我发布的代码段中删除带有
else
的行,并删除
url前面的四个空格。追加(名称)
行。1.由于自定义搜索只返回带有“google”的url,因此
重新搜索(“google”,名称)
check始终返回
True
:删除此函数调用。--2.从我发布的代码段中删除带有
else
的行,并删除
URL前面的四个空格。追加(名称)
行。