Python2 urllib2用不了???求解。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python2 urllib2用不了???求解。。。相关的知识,希望对你有一定的参考价值。

参考技术A 新手常犯的一个错误, 你的当前代码或者别的代码文件命名成了urllib2,
然后pycharm会自作聪明的把你的代码都添加到环境变量,
于是乎, 你import urllib2的时候, 其实会优先查找你自己写的代码里是否有urllib2.py这个文件, 因为你这个文件就是urllib2.py, 所以import的是你自己的这个代码, 没有urlopen也是正常的.
以后给代码命名就尽量避免这个情况, 我一般这样命名: urllib2_.py
这样既能知道这个代码是干嘛的, 又不会错.本回答被提问者和网友采纳

python用urllib将url参数解析成字典

【中文标题】python用urllib将url参数解析成字典【英文标题】:python parsing url parameters into a dictionary with urllib 【发布时间】:2022-01-21 17:13:37 【问题描述】:

我正在尝试使用 urllib 获取 url 的参数。

在重温一些 *** Q&A 之后,以下几行有答案:

从 urllib.parse 导入 urlparse

url2='https://batavia.flyingcar.org/dfr/?d=34?f=56#/?dossier=ZT18174#/?dossier2=ZZ274'
parsed = urlparse(url2)
print(parsed)

结果是:

ParseResult(scheme='https', netloc='batavia.internal.epo.org', path='/digital-file-repository/', params='', query='d=34?f=56', fragment='/?dossier=ZT1880174#/?dossier2=ZZ2221880174')

为了获取我可能使用的所有参数:

print(parsed.params)
print(parsed.query)
print(parsed.fragment)

结果:

d=34?f=56
/?dossier=ZT18174#/?dossier2=ZZ274

我的问题: a) 为什么 params 什么都不是? b)是否有任何函数可以以字典的形式获取结果而无需解析字符串? c) 如果片段都用于传递参数,为什么片段与查询的处理方式不同?

【问题讨论】:

【参考方案1】:

首先,网址中不应包含多个?,后续参数以&分隔。该网址刚刚损坏。

a) 参数始终为空,甚至被记录为“始终为空字符串”

b) 您可以使用urllib.parse.parse_qs() 将查询字符串拆分为一个字典,但如果您在查询字符串中有多个?,它将不起作用

c) 从片段中解析参数只是一个约定,片段是# 之后的所有内容,并且没有任何标准编码约定。

【讨论】:

以上是关于Python2 urllib2用不了???求解。。。的主要内容,如果未能解决你的问题,请参考以下文章

python2.7 urllib2 爬虫

python2.7 urllib和urllib2

python2.x urllib2和urllib的使用

Urllib 模块

urllib库的基本使用

爬虫二(urllib模块)