相关疑难解决方法(0)

导入错误:没有模块名称urllib2

这是我的代码:

import urllib2.request

response = urllib2.urlopen("http://www.google.com")
html = response.read()
print(html)
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

python urllib2 python-3.x

433
推荐指数
10
解决办法
67万
查看次数

在Python 3中为urrlib.request.urlopen更改用户代理

我想打开一个网址urllib.request.urlopen('someurl'):

with urllib.request.urlopen('someurl') as url:
b = url.read()
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误:

urllib.error.HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud)

我理解错误是由于网站不让python访问它,阻止机器人浪费他们的网络资源 - 这是可以理解的.我去搜索,发现你需要更改urllib的用户代理.但是我在这个问题上找到的关于如何更改用户代理的所有指南和解决方案都是使用urllib2,而我使用的是python 3,因此所有解决方案都不起作用.

我怎么能用python 3解决这个问题?

python user-agent urllib python-3.x

51
推荐指数
3
解决办法
5万
查看次数

Python urllib2.HTTPError:HTTP错误503:服务在有效网站上不可用

我一直在使用亚马逊的产品广告API来生成包含给定图书价格的网址.我生成的一个网址如下:

http://www.amazon.com/gp/offer-listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0415376327

当我点击链接或粘贴地址栏上的链接时,网页加载正常.但是,当我执行以下代码时,我收到一个错误:

url = "http://www.amazon.com/gp/offer-listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0415376327"
html_contents = urllib2.urlopen(url)
Run Code Online (Sandbox Code Playgroud)

错误是urllib2.HTTPError:HTTP错误503:服务不可用.首先,我不明白为什么我甚至会因为网页成功加载而出现此错误.

此外,我注意到的另一个奇怪的行为是,以下代码有时会做,有时不会给出指定的错误:

html_contents = urllib2.urlopen("http://www.amazon.com/gp/offer-listing/0415376327%3FSubscriptionId%3DAKIAJZY2VTI5JQ66K7QQ%26tag%3Damaztest04-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3D0415376327")
Run Code Online (Sandbox Code Playgroud)

我完全迷失了这种行为的发生方式.是否有任何修复或解决方法?我的目标是阅读网址的html内容.

编辑

我不知道为什么堆栈溢出正在改变我的代码,以便将我在上面列出的amazon链接更改为rads.stackoverflow.无论如何,忽略rads.stackoverflow链接并在引号之间使用上面的链接.

python urllib2

16
推荐指数
2
解决办法
3万
查看次数

"该网站的所有者已根据您的浏览器签名禁止您访问"...在python程序中的网址请求

在做一个简单的请求时,在python(精确的是Entought Canopy)上,使用urllib2,服务器拒绝我访问:

data = urllib.urlopen(an url i cannot post because of reputation, params)

print data.read()
Run Code Online (Sandbox Code Playgroud)

错误:

Access denied | play.pokemonshowdown.com used CloudFlare to restrict access

The owner of this website (play.pokemonshowdown.com) has banned your access based on your browser's signature (14e894f5bf8d0920-ua48).
Run Code Online (Sandbox Code Playgroud)

这显然是一个普遍问题,所以我在网上找到了一些线索.

https://support.cloudflare.com/hc/en-us/articles/200171806-Error-1010-The-owner-of-this-website-has-banned-your-access-based-on-your-browser-签名:

防火墙,代理,浏览器插件或扩展可能会产生误报.尝试使用其他浏览器访问该站点作为访问该站点的替代方法.

https://support.cloudflare.com/hc/en-us/articles/200170176-Why-am-I-getting-a-Checking-your-Browser-before-accessing-message-before-entering-a-site- on-CloudFlare-:

当网站所有者打开一个名为"我受到攻击"的DDoS保护和缓解工具时,"访问前检查您的浏览器(insertsite.com)".该页面通常会消失,并授予您访问该网站的权限.秒.

注意:您需要在浏览器中启用JavaScript和Cookie才能通过检查.检查是为了确保您不是僵尸网络的一部分."

答案很清楚,除了这一件事......*我没有使用任何浏览器!请求是通过python程序完成的,请求是urllib.urlopen......

这是否意味着我应该拥有,例如,开启的Cookie和JavaScript ... Enthought Canopy?这句话是否有任何句子?在尝试使用编程控制台的基本请求访问站点时,我几乎不了解有关此浏览器特定检查激活的任何信息.这就是我寻求你帮助的原因.

为什么会这样?如何绕过它?

javascript python browser cookies urllib

13
推荐指数
1
解决办法
2万
查看次数

对于在浏览器中显示正常的网站,urllib2返回404

我无法使用urllib2打开一个特定的URL.同样的方法适用于其他网站,例如"http://www.google.com",但不适用于此网站(在浏览器中也可以正常显示).

我的简单代码:

from BeautifulSoup import BeautifulSoup
import urllib2

url="http://www.experts.scival.com/einstein/"
response=urllib2.urlopen(url)
html=response.read()
soup=BeautifulSoup(html)
print soup
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我使它工作吗?

这是我得到的错误:

Traceback (most recent call last):
  File "/Users/jontaotao/Documents/workspace/MedicalSchoolInfo/src/AlbertEinsteinCollegeOfMedicine_SciValExperts/getlink.py", line 12, in <module>
    response=urllib2.urlopen(url);
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 400, in open
    response = meth(req, response)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 432, in error
    result = self._call_chain(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", …
Run Code Online (Sandbox Code Playgroud)

html python url urllib2

9
推荐指数
1
解决办法
2万
查看次数

urllib2 HTTP错误429

所以我有一个子reddits列表,我正在使用urllib打开它们.当我经历他们时,urllib最终失败了:

urllib2.HTTPError: HTTP Error 429: Unknown
Run Code Online (Sandbox Code Playgroud)

做一些研究我发现reddit通过IP限制了对服务器的请求数量:

每两秒钟发出一次请求.突发请求有一些限制,但要保持理智.一般情况下,一分钟内保持不超过30个请求.

所以我想我time.sleep()每隔10秒就会将请求限制在一个页面上.这最终也失败了.

上面的引用是从reddit API页面中获取的.我没有使用reddit API.在这一点上,我在想两件事.该限制仅适用于reddit API或urllib也有限制.

有谁知道这两件事中的哪一件?或者我如何解决这个问题?

python urllib2 reddit http-status-code-429

9
推荐指数
2
解决办法
2万
查看次数

在python中发送标题

我有以下python脚本,我想发送"假"标题信息,以便我的应用程序就好像它是firefox.我怎么能这样做?

import urllib, urllib2, cookielib

username = '****'

password = '****' 

login_user = urllib.urlencode({'password' : password, 'username' : username})

jar = cookielib.FileCookieJar("cookies")

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))

response = opener.open("http://www.***.com")

response = opener.open("http://www.***.com/login.php")

response = opener.open("http://www.***.com/welcome.php", login_user)
Run Code Online (Sandbox Code Playgroud)

python post http-headers

7
推荐指数
2
解决办法
9137
查看次数

用Python抓刮Facebook

我有兴趣获得Facebook上每个朋友的朋友数量.显然官方Facebook API不允许获取朋友的朋友,所以我需要以某种方式绕过这个(有点明智的)限制.我尝试了以下方法:

import sys
import urllib, urllib2, cookielib

username = 'me@example.com'
password = 'mypassword'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'email' : username, 'pass' : password})
request = urllib2.Request('https://login.facebook.com/login.php')
request.add_header('User-Agent','Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc14 Firefox/3.6.12')
opener.open(request, login_data)
resp = opener.open('http://facebook.com')
print resp.read()
Run Code Online (Sandbox Code Playgroud)

但我最终只得到了验证码页面.知道FB如何检测到请求不是来自"普通"浏览器吗?我可以添加额外的步骤并解决验证码,但这会给程序增加不必要的复杂性,所以我宁愿避免它.当我使用具有相同User-Agent字符串的Web浏览器时,我没有获得验证码.

或者,是否有人对如何实现我的目标有任何更明智的想法,即获得朋友的朋友列表?

python captcha facebook

7
推荐指数
1
解决办法
2466
查看次数

Python的urllib2在某些网站上不起作用

我发现你无法使用Python的urllib2(或urllib)从一些网站上读取.一个例子...

urllib2.urlopen("http://www.dafont.com/").read()
# Returns ''
Run Code Online (Sandbox Code Playgroud)

当您使用浏览器访问该站点时,这些站点可以工作.我甚至可以使用PHP抓它们(没有尝试其他语言).我见过其他网站存在同样的问题 - 但目前还记不起网址.

我的问题是......

  1. 这个问题的原因是什么?
  2. 任何解决方法?

python urllib urllib2

2
推荐指数
1
解决办法
1701
查看次数

python urllib2无法获取特定的url

我正在使用urllib2来请求URL并读取它们的内容,但遗憾的是它不能用于某些URL.看看这些命令:

#No problem with this URL
urllib2.urlopen('http://www.huffingtonpost.com/2014/07/19/todd-akin-slavery_n_5602083.html')
#This one produced error
urllib2.urlopen('http://www.foxnews.com/us/2014/07/19/cartels-suspected-as-high-caliber-gunfire-sends-border-patrol-scrambling-on-rio/')
Run Code Online (Sandbox Code Playgroud)

产生的第二个URL和错误如下:

Traceback (most recent call last):
  File "D:/Developer Center/Republishan/republishan2/republishan2/test.py", line 306, in <module>
    urllib2.urlopen('http://www.foxnews.com/us/2014/07/19/cartels-suspected-as-high-caliber-gunfire-sends-border-patrol-scrambling-on-rio/')
  File "C:\Python27\lib\urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 531, in …
Run Code Online (Sandbox Code Playgroud)

python urllib2 httprequest

1
推荐指数
1
解决办法
160
查看次数