gpt4 book ai didi

python - 解析 python 中的 url 并更改其中的部分

转载 作者:行者123 更新时间:2023-12-05 03:12:35 26 4
gpt4 key购买 nike

我正在用 Python 解析一个 url,你可以在下面找到一个示例 url 和代码,我想做的是从 url 中拆分 (74743) 并制作一个 for 循环,它将从一个部分中获取它列表。尝试使用 urlparse 但无法完成它,主要是因为 url 中的部分发生了变化。我只想要最简单和最快的方法来做到这一点。

示例网址:

http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is=

( http://example.com/wps/portal ) 始终固定

(lYuxDoIwGAYf6f9aqKSjMNQ) 总是在变化

(74743) 将取自列表名称的零件

(IntNumberOf=&is=) 也根据网站

代码如下:

from lxml import html
import requests
import urlparse


Parts = [74743, 85731, 93021]

url = 'http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is='

parsing = urlparse.urlsplit(url)

print parsing

最佳答案

>>> import urlparse

>>> url = 'http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is='

>>> split_url = urlparse.urlsplit(url)
>>> split_url.path
'/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/'

您可以使用“/”将路径拆分为字符串列表,对列表进行切片,然后重新加入:

>>> path = split_url.path
>>> path.split('/')
['', 'wps', 'portal', 'lYuxDoIwGAYf6f9aqKSjMNQ', '']

切掉最后两个:

>>> path.split('/')[:-2]
['', 'wps', 'portal']

并重新加入:

>>> '/'.join(path.split('/')[:-2])
'/wps/portal'

要解析查询,请使用 parse_qs:

>>> parsed_query = urlparse.parse_qs(split_url.query)
{'PartNo': ['74743']}

要保留空参数,请使用 keep_blank_values=True:

>>> query = urlparse.parse_qs(split_url.query, keep_blank_values=True)
>>> query
{'PartNo': ['74743'], 'is': [''], 'IntNumberOf': ['']}

然后您可以修改查询字典:

>>> query['PartNo'] = 85731

并更新原来的split_url:

>>> updated = split_url._replace(path='/'.join(base_path.split('/')[:-2] +
['ASDFZXCVQWER', '']),
query=urllib.urlencode(query, doseq=True))

>>> urlparse.urlunsplit(updated)
'http://example.com/wps/portal/ASDFZXCVQWER/?PartNo=85731&IntNumberOf=&is='

关于python - 解析 python 中的 url 并更改其中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33203727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com