- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为我的域列表获取 Google PageRank,但我最终遇到了这个错误:
Python3: raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbidden
针对我的问题,我已经尝试了一些现有的解决方案,但没有一个能解决我的问题。这是我的代码:
# Script for getting Google Page Rank of page
# Google Toolbar 3.0.x/4.0.x Pagerank Checksum Algorithm
#
# original from http://pagerank.gamesaga.net/
# this version was adapted from http://www.djangosnippets.org/snippets/221/
# by Corey Goldberg - 2010
#
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
from __future__ import print_function, division
import sys
import urllib.request as _urlib1 # py3
import urllib.parse as _urlib2 # py 3
def get_pagerank(url):
hsh = check_hash(hash_url(url))
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'
gurl = 'http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&ch=%s&q=info:%s' % (hsh, _urlib2.quote(url))
headers={'User-Agent':user_agent,}
request=_urlib1.Request(gurl,None,headers) #The assembled request
u = _urlib1.urlopen(request)
s = u.read().decode('utf-8') # for py2, comment .decode() part
#print(s) # debug - response of server
rank = s.strip()[9:]
if rank == '':
rank = 'None'
if rank == 'None':
rank = 'None'
return rank
def int_str(string, integer, factor):
for i in range(len(string)) :
integer *= factor
integer &= 0xFFFFFFFF
integer += ord(string[i])
return integer
def hash_url(string):
c1 = int_str(string, 0x1505, 0x21)
c2 = int_str(string, 0, 0x1003F)
c1 >>= 2
c1 = ((c1 >> 4) & 0x3FFFFC0) | (c1 & 0x3F)
c1 = ((c1 >> 4) & 0x3FFC00) | (c1 & 0x3FF)
c1 = ((c1 >> 4) & 0x3C000) | (c1 & 0x3FFF)
t1 = (c1 & 0x3C0) << 4
t1 |= c1 & 0x3C
t1 = (t1 << 2) | (c2 & 0xF0F)
t2 = (c1 & 0xFFFFC000) << 4
t2 |= c1 & 0x3C00
t2 = (t2 << 0xA) | (c2 & 0xF0F0000)
return (t1 | t2)
def check_hash(hash_int):
hash_str = '%u' % (hash_int)
flag = 0
check_byte = 0
i = len(hash_str) - 1
while i >= 0:
byte = int(hash_str[i])
if 1 == (flag % 2):
byte *= 2;
byte = int(byte / 10) + byte % 10
check_byte += byte
flag += 1
i -= 1
check_byte %= 10
if 0 != check_byte:
check_byte = 10 - check_byte
if 1 == flag % 2:
if 1 == check_byte % 2:
check_byte += 9
check_byte >>= 1
return '7' + str(check_byte) + hash_str
有人可以帮忙吗?
最佳答案
问题不在于 IP 地址被阻止。我正在使用 Python3 并遇到同样的问题。我发现 Google 阻止了不会覆盖 User-Agent 和 Accept-Encoding header 的 urllib。
它用于测试搜索的 header :
GET /search?q=f1+2015 HTTP/1.1
Accept-Encoding: identity
Connection: close
User-Agent: Python-urllib/3.4
Host: 127.0.0.1:8076
我将“Accept-Encoding”设置为“”,将“User-Agent”设置为“testing”,403 错误停止。
关于Python3 - urllib.error.HTTPError : HTTP Error 403: Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033783/
我收到“HTTP 错误 500:内部服务器错误”响应,但我仍想读取错误 HTML 中的数据。 使用 Python 2.6,我通常使用以下方法获取页面: import urllib2 url = "ht
我的 API 提供商在 response.body 中发送错误消息作为 ReadableStream为纯文本,我需要让管理员在休息时将这些消息显示给最终用户。 我打算这样做: import HttpE
我正在尝试从Youtube数据API获取视频数据,但是在经过一定数量的请求调用(大约900次)后,我遇到了(500)后端错误,我也试图等待15分钟的间隔,持续4到5次,但仍然抛出同样的错误 错误: b
刚开始学Python,就遇到了这个问题。真正解析来自亚马逊的价格并将其打印到控制台。 这是我的代码: import requests, bs4 def getAmazonPrice(productUr
刚开始学Python,就遇到了这个问题。真正解析来自亚马逊的价格并将其打印到控制台。 这是我的代码: import requests, bs4 def getAmazonPrice(productUr
测试一些使用 urllib2 的代码, 我想养一个 HTTPError以确保它得到正确处理。 HTTPError 有一个构造函数: def __init__(self, url, code, msg,
如果是 404,我想捕获带有额外信息的 urllib2.HTTPError: try: data = urlopen(url) except HTTPError, e: # Python 2
我在 IIS 7 上本地运行的 Asp.Net 4 中有一个 Web 应用程序。 我需要为 IIS 的默认页面显示一个自定义页面 (404) 和一个 500。 在 Web.Config 中使用这个 h
我在为 cherrypy.HTTPError 提供自定义响应处理时遇到问题.我希望在响应正文中显示的唯一内容是 JSON 编码的 dict(这是 REST API)。源代码似乎表明HTTPError.
我在 web.config 中有这个: 但是 IIS 仍然显示内置的错误页面。 有什么想法吗? 最佳答案 这就是我使用它的方式,它对我有用,除了 subStatusCode
如何在 Angular 服务中模拟 HTTP 错误响应?我经常需要处理不同的 HTTP 错误代码,有时我需要实现解决方案,但后端还没有准备好。如何从后端模拟错误? 示例代码 public getD
在我的Google帐户(不是主要帐户)上,我创建了OAuth凭据,可以访问CMS及其 channel 。使用此凭据,我可以从YouTube Analytics(分析)API中获取数据,因此这里没有问题
我已将以下内容添加到配置文件中。 ... 但是,我似乎仍然得到带有黄色背景和堆栈跟踪的默认页面。我试过在 system.web 中注释掉用于错误处理和添加/删除
当我尝试运行 conda update numpy 时出现以下错误(也在运行 conda update conda 时) Fetching package metadata ............C
我正在尝试找出一种使用 ASP.NET WebApi 返回具有非 200 返回代码的自定义负载的方法。基本上我想拥有 {"status":{"code":"40001", "message": "Fi
我在实现 MyFaces 2.0 时使用 JSF我有 2 个 jsf 页面 login.xhtml 和 register.xhtml。 登录.xhtml: System CollD
如何返回 HttpError(自己的、格式漂亮的前端错误消息)然后使用方便的 IHttpActionResult? public IHttpActionResult Delete(Guid id) {
我正在用 python 尝试“Hello world” import webapp2 class MainHandler(webapp2.RequestHandler): def get(
如何获取 中设置的 errorMode 属性的值? web.config 中的元素? 我正在尝试在 ASP.NET Web 应用程序中实现一些“ self 诊断”。当应用程序启动时,它会运行 web
我正在尝试用 ruby 编写一个简单的网络抓取代码。它一直工作到第 29 个 url,然后我收到此错误消息: C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:346:i
我是一名优秀的程序员,十分优秀!