所以我有一个数据如下:
item = '//s780.scene7.com/is/image/forever/301596014_001?hei=98&wid=98'
Run Code Online (Sandbox Code Playgroud)
使用 urlparse 模块。我怎样才能用新的大小替换上面的数据,使它看起来像这样:
item = '//s780.scene7.com/is/image/forever/301596014_001?hei=360&wid=360'
Run Code Online (Sandbox Code Playgroud) 像http://www.gilacountyaz.gov/government/assessor/index.php这样的网站有一堆内部链接应该是绝对路径,但没有前导斜杠.使用urlparse.urljoin
结果解析它们时如下:
>>> import urlparse
>>> a = "http://www.gilacountyaz.gov/government/assessor/index.php"
>>> b = "government/assessor/address_change.php"
>>> urlparse.urljoin(a, b)
'http://www.gilacountyaz.gov/government/assessor/government/assessor/address_change.php'
Run Code Online (Sandbox Code Playgroud)
这会导致Web爬网程序没有意识到它已经访问过页面,并且可能存在无限循环.Firefox和Chrome能够发现问题并正确解析
http://www.gilacountyaz.gov/government/assessor/address_change.php
Run Code Online (Sandbox Code Playgroud)
有没有办法在Python中做同样的事情?请注意,假设始终使用前导斜杠不起作用,因为我们可能正在处理真正的相对路径.
我不太确定这些模块的用途。我知道他们将各自的 url 拆分为其组件,但是为什么这会有用,或者何时使用 urlparse 的示例是什么?
DATABASE_URL- MYSQL://用户名:password @ host:port/database_name
错误:database_name没有属性.
if 'DATABASE_URL' in os.environ:
url = urlparse(os.getenv['DATABASE_URL'])
g['db'] = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname ,port=url.port,path=url.path[1:])
Run Code Online (Sandbox Code Playgroud) 我正在学习如何使用 Azure 函数,对它还很陌生。我有一个用 NodeJs 编写的 httptrigger Azure 函数。我正在考虑如何从 httptrigger 函数 URL 解析数据并在我的代码中使用它的逻辑。想对此提出一些建议吗?
简单来说,
我在 python 2.7 中导入 urlparse而不是urllib.parse但得到AttributeError: 'function' object has no attribute 'unquote'
File "./URLDefenseDecode2.py", line 40, in decodev2
htmlencodedurl = urlparse.unquote(urlencodedurl)
Run Code Online (Sandbox Code Playgroud)
python 2.7 中等效的 urllib.parse.unquote() 是什么?
假设我有一个URL如下:
http://sitename.com/pathname?title=moviename&url=VIDEO_URL
Run Code Online (Sandbox Code Playgroud)
我想解析这个URL,分别单独获取标题部分和url部分.
我试过以下,
from urlparse import urlparse
q = urlparse('http://sitename.com/pathname?title=moviename&url=VIDEO_URL')
Run Code Online (Sandbox Code Playgroud)
在我这样做之后,我得到以下结果,
q
ParseResult(scheme='http', netloc='sitename.com', path='/pathname', params='', query='title=moviename&url=VIDEO_URL', fragment='')
Run Code Online (Sandbox Code Playgroud)
并且q.query
,
'title=moviename&url=VIDEO_URL'
Run Code Online (Sandbox Code Playgroud)
我无法在这里使用q.query.title或q.query.url.有没有办法可以访问它?我想将url和title部分分开分成不同的列.我们可以这样做吗或者我们可以编写一个子字符串方法来检查以"title"开头并以"&"结尾并拆分它吗?
谢谢
仅供参考 - 这是程序使用Django但我没有标记它因为它不是django问题.django代码在这里用于上下文
~~背景~~
我发现了一个程序中的错误.简而言之,我urlparse.urlparse
用来从给定的URI获取信息并将其保存到数据库中.
目标是做这样的事情:
url = urlparse.urlparse('http://somedomain.com/yada/yada')
some_instance = Domain(address=url.netloc)
Run Code Online (Sandbox Code Playgroud)
~~问题~~
问题是由于编码错误,数据库充满了urlparse
对象.因此,从数据库中调用实例时,结果是一个unicode字符串:
some_instance = Domain.objects.get(pk=XX)
some_instance.address
>>> u"ParseResult(scheme=u'http', netloc=u'www.somedomain.com', path=u'/', params='', query=u'_vsrefdom=googleppc', fragment='')"
Run Code Online (Sandbox Code Playgroud)
哎呀.
~~问题~~
显然,我需要回去修复一些记录.我很想知道的是,是否有一种好的pythonic方法可以将对象的unicode表示(而不是实际.__unicode__()
返回)恢复回对象本身.
思考?
我在谷歌和StackOverflow上看了一下,问题是我遇到的任何搜索与输出的交易.__unicode__()
而不是整个表示本身.
我想隐藏 URL 中的密码以用于日志记录。我希望通过解析、用虚拟密码替换密码并解析来使用urlparse,但这给了我:
>>> from urllib.parse import urlparse
>>> parts = urlparse('https://user:pass@66.66.66.66/aaa/bbb')
>>> parts.password = 'xxx'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud)
所以替代方案似乎是这样,这似乎太过分了。
使用标准库是否有更简单的方法来替换密码?
我有以下网址的代码:http://localhost/summary/myfile.csv我希望网址看起来像这样:http:// localhost/summary?file = myfile.csv
代码将写在烧瓶中.
我的第一个网址的代码如下:
@app.route('/summary/<filename>',methods = ['GET'])
def api_summary(filename):
url = 'C:\\Users\\Desktop\\myproject\\'
if os.path.exists(url + filename):
data = pandas.read_csv( url + filename)
Numeric_Summary = data.describe().to_dict()
resp = jsonify(Numeric_Summary)
resp.status_code = 200
return resp
Run Code Online (Sandbox Code Playgroud) 我的问题与此问题相同,但正确的答案是针对PHP而不是javascript.
如果没有http://或https://或ftp://,如何将http://添加到网址?
Example:
addhttp("google.com"); // http://google.com
addhttp("www.google.com"); // http://www.google.com
addhttp("google.com"); // http://google.com
addhttp("ftp://google.com"); // ftp://google.com
addhttp("https://google.com"); // https://google.com
addhttp("http://google.com"); // http://google.com
addhttp("rubbish"); // http://rubbish
Run Code Online (Sandbox Code Playgroud)
基本上如何使用javascript编写使用PHP语法的相同功能?因为当我使用函数时,preg_match没有在javascript中定义.
function addhttp($url) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}
Run Code Online (Sandbox Code Playgroud) urlparse ×11
python ×7
node.js ×2
python-2.7 ×2
azure ×1
flask ×1
javascript ×1
logging ×1
mysql ×1
obfuscation ×1
python-3.4 ×1
scene7 ×1
unicode ×1
url ×1
url-parsing ×1