js 抓取网页内容(第6行的html就是我们抓取的搜索结果页面源码)

优采云 发布时间: 2022-02-04 11:26

  js 抓取网页内容(第6行的html就是我们抓取的搜索结果页面源码)

  请求 = urllib2.请求(url)

  response = urllib2.urlopen(request)

  html = response.read()

  结果 = self.extractSearchResults(html)

  第6行的html是我们爬取的搜索结果页面的源码。用过Python的同学会发现Python同时提供了urllib和urllib2两个模块,这两个模块都与URL请求相关,只是提供的功能不同。 urllib 只能接收 URL,而 urllib2 可以接受 Request 类的实例来设置 URL 请求的标头,这意味着您可以伪装您的用户代理等(在下面使用)。

  现在我们可以使用 Python 抓取网页并保存它,我们可以从源页面中提取我们想要的搜索结果。 Python提供了htmlparser模块,但是使用起来比较麻烦。在这里,我们推荐一个非常有用的网页分析包 BeautifulSoup。评委网站上对 BeautifulSoup 的使用有详细的介绍。这里就不多说了。

  使用上面的代码,少量查询是可以的,但是如果要查询几千次,上面的方法就不再有效了,谷歌会检测你请求的来源,如果我们用机器的话经常抓取谷歌的搜索结果,很快谷歌就会屏蔽你的IP,并返回一个503错误页面。这不是我们想要的结果,所以我们会继续探索

  如前所述,使用 urllib2 我们可以设置 URL 请求的标头来伪装我们的用户代理。简而言之,用户代理是客户端浏览器等应用程序使用的一种特殊网络协议。每次浏览器(邮件客户端/搜索引擎蜘蛛)发出 HTTP 请求时,都会发送到服务器,服务器就知道用户了。使用什么浏览器(邮件客户端/搜索引擎蜘蛛)访问。有时候为了达到一些目的,我们不得不去善意地欺骗服务器告诉它我没有使用机器访问你。

  所以,我们的代码变成了这样:

  user_agents = ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.@ >0',\

  'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0' , \

  'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533+ \

  (KHTML,如 Gecko)元素浏览器 5.0', \

  'IBM WebExplorer /v0.94', 'Galaxy/1.0 [en] (Mac OS X 10.5.6; U; en)' , \

  'Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;WOW64;三叉戟/6.0)',\

  'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 版本/12.14', \

  'Mozilla/5.0(iPad;CPU OS 6_0,如 Mac OS X)AppleWebKit/536.26(KHTML,如 Gecko)\

  版本/6.0 移动版/10A5355d Safari/8536.25', \

  'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, 像 Gecko) \

  Chrome/28.0.1468.0 Safari/537.36', \

  'Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.0;Trident/5.0;TheWorld)']

  def search(self, queryStr):

  queryStr = urllib2.quote(queryStr)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线