获取Google搜索结果的Py脚本

  • A+
所属分类:代码审计

百度在搜索上跟google还是有很大差距的,尤其是google支持很多搜索语法,非常强大。所以这里这里写了个简单的获取google搜索结果的脚本。但是google做了防爬取限制,使用一般的正则匹配是不行的,这里用的是google的ajax的接口,但是使用起来还是有些问题,没有完全解决。

获取google搜索结果的Python代码

1
#! /usr/bin/env python
1
 #coding=utf-8
1
 import urllib2,urllib
1
 import msvcrt
1
 import simplejson
1
 import sys
1
def CatchURL(key,num):#抓取链接
1
 url = ('https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s&rsz=8&start=%s') % (key,num)
1
 try:
1
 request = urllib2.Request(url)
1
 response = urllib2.urlopen(request)
1
 results = simplejson.load(response)
1
 URLinfo = results['responseData']['results']
1
 except Exception,e:
1
 print e
1
 else:
1
 for info in URLinfo:
1
 result.append(info['url'])
1
def RemoveRepeat(List):#列表去重
1
 New_List = []
1
 for i in List:
1
 if i not in New_List:
1
 New_List.append(i)
1
 return New_List
1
def save(List):
1
 f = open("result","w")
1
 for i in List:
1
 f.write(i+"\n")
1
 f.close()
1
if __name__ == '__main__':
1
 searchstr = raw_input()
1
 pagenum = input()
1
 result = []
1
 for i in range(1,pagenum+1):
1
 CatchURL(searchstr,i)
1
 result = RemoveRepeat(result)
1
 save(result)
1
 print "DONE!"

运行程序,第一行输入搜索的内容,第二行输入搜索的页数,然后会在程序同目录下生成result文件,里面是获取并且去重后的url,但是程序运行的时候可能会出现如下的情况.

获取Google搜索结果的Py脚本

那是因为google检测到非正常的请求,导致无法获取搜索结果,暂时未能解决。

SS推荐
老D

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:96   其中:访客  96   博主  0

    • avatar 宅男的野心 3

      之前一直都想过尝试抓取Google搜索结果了,
      API我总觉得很容易被封(个人认为而已),
      我在想用Selenium一类的浏览器自动化软件来访问Google搜索结果,
      再分析出HTML的内容。
      这个应该是比较笨,但比较稳定的方法。
      (个人认为HTML不会常常改,即使改了也可用比较智能的视觉条件来分析)
      不知现在老D有没有其他方法,如果没有的话,我就做出来试试看。

        • avatar 长了毛的烂桃 1

          @宅男的野心 不知道你尝试的selenium可以吗?好像如果不换ip的话,就直接selenium的话我这边试了只能爬到7页数据,很快就封了。

        • avatar 宅男的野心 3

          之前一直都想过尝试抓取Google搜索结果了,
          API我总觉得很容易被封(个人认为而已),
          我在想用Selenium一类的浏览器自动化软件来访问Google搜索结果,
          再分析出HTML的内容。

          • avatar 测试 3

            测试

            • avatar 醬油Project 9

              获取Google搜索结果的Py脚本 ←读成"获取Google搜索结果的屁眼脚本"…

              • avatar 1 6

                老刀,给你友情测试了一下,你的输入框需要验证啊.

                  • 老D 老D 9

                    @1 尼玛,刷了我一百多条,我用的是第三方评论插件

                      • avatar 1 6

                        @老D 100条都是我手下留情了,关得快.

                          • avatar wiki 0

                            @1 哈哈好玩

                              • avatar wiki 0

                                @wiki 写个循环就好。

                        • avatar 测试老刀的bbs 6

                          测试老刀的bbs

                          • avatar 测试老刀的bbs 6

                            测试老刀的bbs

                            • avatar 测试老刀的bbs 6

                              测试老刀的bbs

                              • avatar 测试老刀的bbs 6

                                测试老刀的bbs

                                • avatar 测试老刀的bbs 6

                                  测试老刀的bbs

                                  • avatar 测试老刀的bbs 6

                                    测试老刀的bbs

                                    • avatar 测试老刀的bbs 6

                                      测试老刀的bbs

                                      • avatar 测试老刀的bbs 6

                                        测试老刀的bbs

                                        • avatar 测试老刀的bbs 6

                                          测试老刀的bbs

                                          • avatar 测试老刀的bbs 6

                                            测试老刀的bbs

                                            • avatar 测试老刀的bbs 6

                                              测试老刀的bbs

                                              • avatar 测试老刀的bbs 6

                                                测试老刀的bbs

                                                • avatar 测试老刀的bbs 6

                                                  测试老刀的bbs

                                                  • avatar 测试老刀的bbs 6

                                                    测试老刀的bbs

                                                    • avatar 测试老刀的bbs 6

                                                      测试老刀的bbs

                                                      • avatar 测试老刀的bbs 6

                                                        测试老刀的bbs

                                                        • avatar 测试老刀的bbs 6

                                                          测试老刀的bbs

                                                          • avatar 测试老刀的bbs 6

                                                            测试老刀的bbs

                                                            • avatar 测试老刀的bbs 6

                                                              测试老刀的bbs

                                                              • avatar 测试老刀的bbs 6

                                                                测试老刀的bbs

                                                                • avatar 测试老刀的bbs 6

                                                                  测试老刀的bbs

                                                                  • avatar 测试老刀的bbs 6

                                                                    测试老刀的bbs

                                                                    • avatar 测试老刀的bbs 6

                                                                      测试老刀的bbs

                                                                      • avatar 测试老刀的bbs 6

                                                                        测试老刀的bbs

                                                                        • avatar 测试老刀的bbs 6

                                                                          测试老刀的bbs

                                                                          • avatar 测试老刀的bbs 6

                                                                            测试老刀的bbs

                                                                            • avatar 测试老刀的bbs 6

                                                                              测试老刀的bbs

                                                                              • avatar 测试老刀的bbs 6

                                                                                测试老刀的bbs

                                                                                • avatar 测试老刀的bbs 6

                                                                                  测试老刀的bbs

                                                                                  • avatar 测试老刀的bbs 6

                                                                                    测试老刀的bbs

                                                                                    • avatar 测试老刀的bbs 6

                                                                                      测试老刀的bbs

                                                                                      • avatar 测试老刀的bbs 6

                                                                                        测试老刀的bbs

                                                                                        • avatar 测试老刀的bbs 6

                                                                                          测试老刀的bbs

                                                                                          • avatar 测试老刀的bbs 6

                                                                                            测试老刀的bbs

                                                                                            • avatar 测试老刀的bbs 6

                                                                                              测试老刀的bbs

                                                                                              • avatar 测试老刀的bbs 6

                                                                                                测试老刀的bbs