标签: urlparse

使用Python修复URL

有一个大文件.此文件的每一行都是由人类输入的URL,因此可能会出现遗漏http丢失www等不同问题.

是否有可以修复这些网址的Python模块?我尝试过url_fix,werkzeug.urls但这并不是我正在寻找的东西.

www.example.com >> http://www.example.com/
Run Code Online (Sandbox Code Playgroud)

当然,没有办法可以修复每一个可能的错误,但我正在寻找修复最常见的错误.

你有什么建议吗?

编辑:根据彼得伍德的评论,让我们假设URL必须包含www.就我而言,这些是eshop网址.

python url urlparse python-2.7

7
推荐指数
0
解决办法
384
查看次数

没有名为'urlparse'的模块,但我没有使用urlparse

我试图弄清楚为什么我看到一个错误,ModuleNotFoundError: No module named 'urlparse'但我从来没有在我的代码中调用urlparse.当我尝试用pip安装urlparse时,我发现这个模块不存在.当我尝试使用pip安装urllib.parse时,我看到与urllib.parse相同的消息.No matching distribution found for urllib.parse.

我在这里错过了什么?

from flask import Flask, request, redirect, url_for, session, g, flash, \
render_template
from flask_oauth import OAuth

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# configuration
SECRET_KEY = 'development key'
DEBUG = True

# setup flask
app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

# Use Twitter as example remote app
twitter = …
Run Code Online (Sandbox Code Playgroud)

urlparse flask python-3.x

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

嘿,你能帮我一下吗?我的“url.parse”已被弃用

第 5 行\n@自 v11.0.0 起已弃用 \xe2\x80\x94 - 使用 WHATWG URL API。

\n

'url.parse' 的签名 '(urlStr: string): UrlWithStringQuery' 已弃用\nurl 。该声明在此处被标记为已弃用。

\n

url urlparse node.js

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

将url与urlunparse相结合

我正在写一些东西来"清理"一个URL.在这种情况下,我所要做的就是返回一个伪造的方案,urlopen如果没有一个方法就行不通.但是,如果我用www.python.org它来测试它会返回http:///www.python.org.有没有人知道为什么额外的/,有没有办法在没有它的情况下返回?

def FixScheme(website):

   from urlparse import urlparse, urlunparse

   scheme, netloc, path, params, query, fragment = urlparse(website)

   if scheme == '':
       return urlunparse(('http', netloc, path, params, query, fragment))
   else:
       return website
Run Code Online (Sandbox Code Playgroud)

python urlparse

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

python,"urlparse.urlparse(url).hostname"返回无值

登录网站后,我想收集其链接.这是我用这个函数(使用mechanize和urlparse库):

br = mechanize.Browser()

.
. #logging in on website
.

for link in br.links():
    url = urlparse.urljoin(link.base_url, link.url)

    hostname = urlparse.urlparse(url).hostname
    path = urlparse.urlparse(url).path

    #print hostname #by printing this I found it to be the source of the None value

    mylinks.append("http://" + hostname + path)
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

    mylinks.append("http://" + hostname + path)
TypeError: cannot concatenate 'str' and 'NoneType' objects
Run Code Online (Sandbox Code Playgroud)

我不确定如何解决这个问题,或者即使它可以修复.有没有办法强制函数追加,即使它会为None值产生一个非工作和奇怪的结果?

或者,我在链接中真正关注的是链接结束的内容.例如,其中一个链接的html代码看起来像这样(我所追求的是世界"lexik"):

<td class="center">
    <a href="http://UnimportantPartOfLink/lexik>>lexik</a>
</td>
Run Code Online (Sandbox Code Playgroud)

所以另一条路线就是机械化可以直接收集这个值,绕过链路而无值麻烦

python urlparse

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

Python - 将url拆分为其组件

我有一个巨大的网址列表,都是这样的:

http://www.example.com/site/section1/VAR1/VAR2
Run Code Online (Sandbox Code Playgroud)

其中VAR1和VAR2是网址的动态元素.我想要做的是从这个url字符串中只提取VAR1.我试过使用urlparse,但输出看起来像这样:

ParseResult(scheme='http', netloc='www.example.com', path='/site/section1/VAR1/VAR2', params='', query='', fragment='')
Run Code Online (Sandbox Code Playgroud)

python regex urlparse

6
推荐指数
2
解决办法
6135
查看次数

更改 urlparse.path 的 url

这是python代码:

url = http://www.phonebook.com.pk/dynamic/search.aspx
path = urlparse(url)
print (path)

>>>ParseResult(scheme='http', netloc='www.phonebook.com.pk', path='/dynamic/search.aspx', params='', query='searchtype=cat&class_id=4520&page=1', fragment='')

print (path.path)
>>>/dynamic/search.aspx
Run Code Online (Sandbox Code Playgroud)

现在我需要将其更改path.path为我的要求。就像如果“/dynamic/search.aspx”是路径,那么我只需要第一个斜杠和最后一个斜杠之间的部分,包括“/dynamic/”的斜杠。

我已经尝试了这两行,但最终结果不是我所期望的,这就是为什么我问这个问题的原因,因为我对“urllib.parse”的了解不够。

path = path.path[:path.path.index("/")]
print (path)
>>>Returns nothing.
path = path.path[path.path.index("/"):]
>>>/dynamic/search.aspx (as it was before, no change.)
Run Code Online (Sandbox Code Playgroud)

简而言之,无论 path.path 结果是什么,我只需要目录名称。例如:“动态/搜索/search.aspx”。现在我需要“动态/搜索/”

python urlparse python-3.x

6
推荐指数
2
解决办法
2938
查看次数

在 python 中更新/添加 url 中的用户名

如果我有一个 URL(例如:“ssh://hello@xyz.com:553/random_uri”、“ https://test.blah.blah:993/random_uri2 ”),我想设置/更新用户名网址。我知道有 urllib.parse.urlparse ( https://docs.python.org/3/library/urllib.parse.html ) 会分解它们,但我在创建新的 url (或更新) 解析时遇到问题结果是我打算使用的用户名。

有没有可以帮助设置/更新用户名的Python库?最好使用 urlparse 的解析结果。

python urllib urlparse

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

Python的`urlparse`:将GET关键字添加到URL

我这样做:

urlparse.urljoin('http://example.com/mypage', '?name=joe')
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

'http://example.com/?name=joe'
Run Code Online (Sandbox Code Playgroud)

虽然我想得到这个:

'http://example.com/mypage?name=joe'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python url urlparse

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

Python中的URL解析 - 规范化路径中的双斜杠

我正在开发一个需要在HTML页面中解析URL(主要是HTTP URL)的应用程序 - 我无法控制输入,其中一些是正如预期的那样有点混乱.

我经常遇到的一个问题是,在解析和加入路径部分中包含双斜线的URL时,urlparse是非常严格的(甚至可能是错误的?),例如:

testUrl = 'http://www.example.com//path?foo=bar'
urlparse.urljoin(testUrl, 
                 urlparse.urlparse(testUrl).path)
Run Code Online (Sandbox Code Playgroud)

而不是预期的结果http://www.example.com//path(甚至更好,使用标准化的单斜杠),我最终得到了http://path.

我正在运行这样的代码的原因是因为这是我到目前为止发现的唯一一种从URL中删除查询/片段部分的方法.也许有更好的方法,但我找不到一个.

任何人都可以推荐一种方法来避免这种情况,或者我应该使用(相对简单,我知道)正则表达式来自我规范化路径?

python urlparse

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

标签 统计

urlparse ×10

python ×8

url ×3

python-3.x ×2

flask ×1

node.js ×1

python-2.7 ×1

regex ×1

urllib ×1