【问题标题】:Python - is there a more effective method to find these parameter values?Python - 是否有更有效的方法来查找这些参数值?
【发布时间】:2023-03-10 13:14:01
【问题描述】:

目前正在使用beautifulsoup 找到这个y 值返回的标签:

Longitude = re.search("Longitude\=[\d]+\.[\d]+", str(y)).group(0)

返回“经度=27.2115500”

有没有更好的方法来返回 BusinessName、Address、Latitude、Longitude 和 AdvertiserID 的值,其中 y 的值是:

<a href="http://maps.website.com/default.aspx?AdvertiserID=ZZ_13130030_5182_000761&amp;Latitude=-18.1320800&amp;Longitude=17.2115500&amp;BusinessName=ACME Ltd&amp;Address=55 Nowhere Rd In This Town&amp;telno=&amp;advertiser=location&amp;routeType=to&amp;origincoords=-18.1320800|17.2115500#tabs-2;" 
onclick="dcsMultiTrack('DCSext._mainreq','','DCSext.linktype','get directions','DCSext.linkplace','','DCSext.linkvalue','','DCSext.show_listingId','ZZ_13130030_5182_000761_8378972_IYMX','DCSext.show_zoningUsed','0','DCSext.show_resultNumber','2')" target="_blank">Get directions</a>'''

【问题讨论】:

  • 我的帖子中的错误..现在应该显示标签中的值,,,对不起..我还是新手...

标签: python regex beautifulsoup lxml


【解决方案1】:

可以读取标签的href属性为:href = tag["href"],然后获取参数:

   from urlparse import urlparse
   o = urlparse(href)
   params = dict(query.split("=") for query in o.query.split("&"))

然后您可以通过以下方式获取值:

params["Longitude"], params["BusinessName"]

【讨论】:

  • 我又被这个卡住了....当 BusinessName 包含“B&B”或“X&Y”之类的词时,有什么建议吗?
  • 已解决...以下敏感度较低 o = dict(parse_qsl(urlparse(href)[4]))
【解决方案2】:

使用urlparse

>>> import urlparse
>>> the_url = """
http://maps.website.com/default.aspx?AdvertiserID=ZZ_13130030_5182_000761&amp;Latitude=-18.1320800&amp;Longitude=17.2115500&amp;BusinessName=ACME Ltd&amp;Address=55 Nowhere Rd In This Town&amp;telno=&amp;advertiser=location&amp;routeType=to&amp;origincoords=-18.1320800|17.2115500#tabs-2;
"""
>>> query_string = urlparse.parse_qs(urlparse.urlparse(the_url)[4])
>>> query_string['AdvertiserID'][0]

【讨论】:

  • get an err = query_string = urlparse.parse_qs(urlparse.urlparse(the_url)[4]) AttributeError: 'function' object has no attribute 'parse_qs'
  • 我也被这个卡住了...使用 Python 2.7.3 不断收到上面的错误...
  • 确保您使用的是urllparse 而不是urllib.urlparse
【解决方案3】:

在 Python 3.5 中:

import urllib
from urllib.parse import urlparse

url = 'http://tupagina.com/?var1=6e5d8&var2=40'
#url = str(request.get_full_path())
parsed = urlparse(url)
qs = urllib.parse.parse_qs(parsed.query)
var1 = qs['var1'][0]
var2 = qs['var2'][0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多