加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 从url中删除随机字符

发布时间:2020-12-20 11:56:30 所属栏目:Python 来源:网络整理
导读:我有一个网址列表如下: urls = [www.example.com?search?q=Termpage=0,www.example.com?search?q=Termpage=1,www.example.com?search?q=Termpage=2] 术语可能是我们想要的任何术语:欧洲,伦敦等. 我的代码部分(在整个代码中)如下: for url in urls: file_n
我有一个网址列表如下:

urls = [
www.example.com?search?q=Term&page=0,www.example.com?search?q=Term&page=1,www.example.com?search?q=Term&page=2
]

术语可能是我们想要的任何术语:欧洲,伦敦等.

我的代码部分(在整个代码中)如下:

for url in urls:
  file_name = url.replace('http://www.example.com/search?q=','').replace('=','').replace('&','')
  file_name = file_name+('.html')

这导致:

Termpage0.html
Termpage1.html
and so on..

如何将URL列表中的Term删除为:

page0.html
page1.html
and so on?

解决方法

您可以使用 urllib.parse来解析URL,然后使用查询部分.这种方法的好处是,如果更改了查询部件的顺序或添加了新部件,它将工作相同:

from urllib import parse

urls = [
    'www.example.com?search?q=Term&page=0','www.example.com?search?q=Term&page=1','www.example.com?search?q=Term&page=2'
]

for url in urls:
    parts = parse.urlparse(url)
    query = parse.parse_qs(parts.query)
    print('page{}.html'.format(query['page'][0]))

输出:

page0.html
page1.html
page2.html

在上面的urlparse中,返回包含URL组件的ParseResult对象:

>>> from urllib import parse
>>> parts = parse.urlparse('www.example.com/search?q=Term&page=0')
>>> parts
ParseResult(scheme='',netloc='',path='www.example.com/search',params='',query='q=Term&page=0',fragment='')

然后parse_qs将返回值为列表的查询参数的dict:

>>> query = parse.parse_qs(parts.query)
>>> query
{'page': ['0'],'q': ['Term']}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读