标签: urllib2

Python URLLib/URLLib2 POST

我正在尝试使用wx/Python创建一个超级简单的虚拟输入/输出板.对于我将要存储数据的服务器的一个请求,我有以下代码:

data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
  print line
Run Code Online (Sandbox Code Playgroud)

没有什么特别的东西在那里.我遇到的问题是,根据我阅读文档的方式,这应该执行一个Post Request,因为我提供了数据参数而且没有发生.我在该URL的索引中有此代码:

if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
Run Code Online (Sandbox Code Playgroud)

每次我运行我的Python应用程序时,都会在控制台上打印"未指定操作"文本.我将尝试使用请求对象来实现它,因为我已经看到了一些包含这些的演示,但我想知道是否有人可以帮助我解释为什么我没有获得带有此代码的Post Request.谢谢!

- 已编辑 -

此代码可以正常工作并正确发布到我的网页:

data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded", 
           "Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
Run Code Online (Sandbox Code Playgroud)

我仍然不确定为什么urllib2库在我提供数据参数时不发布 - 对我来说文档表明它应该.

python post urllib urllib2

37
推荐指数
1
解决办法
11万
查看次数

如何使用Python urlopen获取非ascii url?

我需要从带有非ascii字符的URL获取数据,但urllib2.urlopen拒绝打开资源并引发:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u0131' in position 26: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我知道URL不符合标准,但我没有机会改变它.

什么是访问由包含使用Python非ASCII字符的URL指向的资源的方式吗?

编辑:换句话说,可以/如何urlopen打开一个URL,如:

http://example.org/Ñöñ-Å?Ç??/
Run Code Online (Sandbox Code Playgroud)

python unicode urllib2 non-ascii-characters urlopen

37
推荐指数
7
解决办法
3万
查看次数

使用urllib2登录网站 - Python 2.7

好吧,所以我将它用于reddit机器人,但我希望能够弄清楚如何登录任何网站.如果这是有道理的....

我意识到不同的网站使用不同的登录表单等.那么我如何找出如何为每个网站优化它?我假设我需要在html文件中查找内容但不知道是什么.

我不想使用Mechanize或任何其他库(这是所有其他答案都在这里,而不是实际上帮助我了解正在发生的事情),因为我想自己学习它究竟是如何工作的.

urllib2文档真的没有帮助我.

谢谢.

python login urllib2 python-2.7

36
推荐指数
1
解决办法
5万
查看次数

如何在python中下载任何(!)网页和正确的字符集?

问题

当使用python对网页进行屏幕抓取时,必须知道页面的字符编码.如果你得到的字符编码错误,你的输出就会搞砸了.

人们通常使用一些基本技术来检测编码.它们使用标题中的字符集或元标记中定义的字符集,或者使用编码检测器(不关心元标记或标题).通过仅使用这些技术,有时您将无法获得与浏览器相同的结果.

浏览器这样做:

  • 元标记始终优先(或xml定义)
  • 当元标记中没有定义字符集时,将使用标头中定义的编码
  • 如果根本没有定义编码,那么就是编码检测的时间.

(嗯......至少这是我认为大多数浏览器都这样做的方式.文档非常缺乏.)

我正在寻找的是一个可以像浏览器一样决定页面字符集的库.我确信我不是第一个需要妥善解决这个问题的人.

解决方案(我还没试过......)

根据Beautiful Soup的文档.

美丽的汤按优先级顺序尝试以下编码,将您的文档转换为Unicode:

  • 作为fromEncoding参数传递给汤构造函数的编码.
  • 在文档本身中发现的编码:例如,在XML声明中或(对于HTML文档)的http-equiv META标记.如果Beautiful Soup在文档中找到这种编码,它会从头开始再次解析文档并尝试新编码.唯一的例外是如果您明确指定了编码,并且该编码实际上有效:那么它将忽略它在文档中找到的任何编码.
  • 通过查看文件的前几个字节来嗅探编码.如果在此阶段检测到编码,则它将是UTF-*编码,EBCDIC或ASCII之一.
  • 如果安装了chardet库,则会对其进行嗅探.
  • UTF-8
  • Windows的1252

python screen-scraping urllib urllib2 character-encoding

34
推荐指数
3
解决办法
1万
查看次数

如何为urllib2 opener添加标题?

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))    
opener.open('http://abc.com')
opener.open('http://google.com')
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用开瓶器访问不同的网站,使用cookie罐.我可以设置一个标题,以便每次有网站时,都会应用标题吗?

python header http urllib2

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

urllib2文件名

如果我使用urllib2打开文件,如下所示:

remotefile = urllib2.urlopen('http://example.com/somefile.zip')
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来获取文件名,然后解析原始URL?

编辑:将openfile更改为urlopen ...不确定是怎么回事.

编辑2:我最终使用:

filename = url.split('/')[-1].split('#')[0].split('?')[0]
Run Code Online (Sandbox Code Playgroud)

除非我弄错了,否则这也应该删除所有潜在的查询.

python url urllib2

31
推荐指数
4
解决办法
4万
查看次数

在python中将文件对象读为字符串

我正在urllib2阅读页面.我需要在源代码上做一个快速的正则表达式并提取一些变量但是urllib2作为文件对象而不是字符串呈现.

我是python的新手,所以我很难看到我如何使用文件对象来做到这一点.有没有快速的方法将其转换为字符串?

python file urllib2

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

使用Python和urllib2的源接口

如何使用Python和urllib2设置源IP /接口?

python urllib2

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

Python urllib2 URLError HTTP状态代码.

我想在引发URLError异常后抓取HTTP状态代码:

我尝试了这个,但没有帮助:

except URLError, e:
    logger.warning( 'It seems like the server is down. Code:' + str(e.code) )
Run Code Online (Sandbox Code Playgroud)

python exception urllib2

31
推荐指数
1
解决办法
6万
查看次数

如何使用Python获取重定向的URL

在Python中,我使用urllib2打开一个url.此网址重定向到另一个网址,该网址会重定向到另一个网址.

我希望在每次重定向后打印出url.

例如

- > =重定向到

A - > B - > C - > D.

我想打印B,C和D的URL(A已经知道,因为它是起始URL).

python redirect urllib2

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