使用Google App Engine在python中获取很多网址

º

在我的RequestHandler子类中,我试图获取网址范围:

class GetStats(webapp2.RequestHandler):
    def post(self): 

    lastpage = 50   
    for page in range(1, lastpage):
        tmpurl = url + str(page)
        response = urllib2.urlopen(tmpurl, timeout=5)
        html = response.read()
        # some parsing html
        heap.append(result_of_parsing)  

    self.response.write(heap)

但是它可以使用约30个网址(页面加载时间很长,但是可以)。如果超过30,我会得到一个错误:

错误:服务器错误

服务器遇到错误,无法完成您的请求。

请在30秒后重试。

有什么方法可以获取很多网址吗?可能更理想或更合适?多达几百页?

更新:

我正在使用BeautifulSoup来解析每个页面。我在gae日志中找到了此追溯:

Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 267, in Handle
result = handler(dict(self._environ), self._StartResponse)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__
return handler.dispatch()
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
  File "/base/data/home/apps/s~gae/1.379703839015039430/main.py", line 68, in post
heap = get_times(tmp_url, 160)
  File "/base/data/home/apps/s~gae/1.379703839015039430/main.py", line 106, in get_times
soup = BeautifulSoup(html)
  File "libs/bs4/__init__.py", line 168, in __init__
self._feed()
  File "libs/bs4/__init__.py", line 181, in _feed
self.builder.feed(self.markup)
  File "libs/bs4/builder/_htmlparser.py", line 56, in feed
super(HTMLParserTreeBuilder, self).feed(markup)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/HTMLParser.py", line 114, in feed
self.goahead(0)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/HTMLParser.py", line 155, in goahead
startswith = rawdata.startswith
 DeadlineExceededError
保罗·科林伍德

之所以失败,是因为您只有60秒钟的时间将响应返回给用户,而我猜这将花费更长的时间。

您将要使用此功能:https : //cloud.google.com/appengine/articles/deferred

创建一个有10分钟超时的任务。然后,您可以立即返回给用户,他们可以稍后通过另一个处理程序(您创建的)“提取”结果。如果收集所有URL花费的时间超过10分钟,则必须将其拆分为更多任务。

看到这个:https : //cloud.google.com/appengine/articles/deadlineexceedederrors

了解为什么您不能再走超过60秒的时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Google App Engine在python中获取网址

来自分类Dev

Google App Engine中的网址大小

来自分类Dev

将GET请求中的网址发送到Google App Engine上的Python服务器

来自分类Dev

如何在Google App Engine中启用网址重写

来自分类Dev

如何从Google App Engine的网址中删除应用ID?

来自分类Dev

在Google App Engine中,如何使用python通过boolean查询?

来自分类Dev

使用Python在Google App Engine中执行Java程序

来自分类Dev

Python Google App Engine-获取位置

来自分类Dev

使用python获取Google App统计信息

来自分类Dev

如何定义分割给定网址的方法(在适用于Google App Engine的python webapp2中)

来自分类Dev

如何定义分割给定网址的方法(在适用于Google App Engine的python webapp2中)

来自分类Dev

Google App Engine + Python中的REST API?

来自分类Dev

如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

来自分类Dev

405方法不允许-使用Google App Engine(Python语言)获取请求

来自分类Dev

Python Jinja2 Google App Engine:从 HTML 选择中获取价值

来自分类Dev

使用Maven的Google App Engine端点

来自分类Dev

在Google App Engine上使用php提取

来自分类Dev

使用Google App Engine上传图片失败

来自分类Dev

在Google App Engine中获取已部署版本的列表

来自分类Dev

在Google App Engine中获取已部署版本的列表

来自分类Dev

如何强制Google App Engine [python]使用SSL(https)?

来自分类Dev

Google App Engine(Python):在单个网页上使用多个表单

来自分类Dev

如何在Google App Engine(Python)中使用AJAX

来自分类Dev

使用Python从Google App Engine上的外部URL上传文件

来自分类Dev

Google App Engine(Python):在单个网页上使用多个表单

来自分类Dev

使用模块在Eclipse中创建Google App Engine项目

来自分类Dev

使用JSF在Google App Engine中丢失了会话

来自分类Dev

使用Google App Engine的Eclipse中的NoClassDefFoundError HttpTransport

来自分类Dev

Google App Engine中的RSA

Related 相关文章

  1. 1

    使用Google App Engine在python中获取网址

  2. 2

    Google App Engine中的网址大小

  3. 3

    将GET请求中的网址发送到Google App Engine上的Python服务器

  4. 4

    如何在Google App Engine中启用网址重写

  5. 5

    如何从Google App Engine的网址中删除应用ID?

  6. 6

    在Google App Engine中,如何使用python通过boolean查询?

  7. 7

    使用Python在Google App Engine中执行Java程序

  8. 8

    Python Google App Engine-获取位置

  9. 9

    使用python获取Google App统计信息

  10. 10

    如何定义分割给定网址的方法(在适用于Google App Engine的python webapp2中)

  11. 11

    如何定义分割给定网址的方法(在适用于Google App Engine的python webapp2中)

  12. 12

    Google App Engine + Python中的REST API?

  13. 13

    如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

  14. 14

    405方法不允许-使用Google App Engine(Python语言)获取请求

  15. 15

    Python Jinja2 Google App Engine:从 HTML 选择中获取价值

  16. 16

    使用Maven的Google App Engine端点

  17. 17

    在Google App Engine上使用php提取

  18. 18

    使用Google App Engine上传图片失败

  19. 19

    在Google App Engine中获取已部署版本的列表

  20. 20

    在Google App Engine中获取已部署版本的列表

  21. 21

    如何强制Google App Engine [python]使用SSL(https)?

  22. 22

    Google App Engine(Python):在单个网页上使用多个表单

  23. 23

    如何在Google App Engine(Python)中使用AJAX

  24. 24

    使用Python从Google App Engine上的外部URL上传文件

  25. 25

    Google App Engine(Python):在单个网页上使用多个表单

  26. 26

    使用模块在Eclipse中创建Google App Engine项目

  27. 27

    使用JSF在Google App Engine中丢失了会话

  28. 28

    使用Google App Engine的Eclipse中的NoClassDefFoundError HttpTransport

  29. 29

    Google App Engine中的RSA

热门标签

归档