【问题标题】:urlencoding python for Bing search用于必应搜索的 urlencoding python
【发布时间】:2019-09-19 07:59:50
【问题描述】:

我有以下网址https://www.bing.com/search?q=site%3Awww.linkedin.com%20Employnet%2C+Inc.%20Monterey%20CA%20NOT%20jobs%20NOT%20pulse%20NOT%20profinder%%20NOT%20dir%20NOT%20company%20intitle%3AEmploynet%2C+Inc.

当我转到 URL 时,搜索变成这样 site:www.linkedin.com Employnet, Inc. Monterey CA NOT jobs NOT pulse NOT profinder% NOT dir NOT company intitle:Employnet, Inc.

这是我的代码:

url="https://www.bing.com/search?q=site%3Awww.linkedin.com%20Employnet%2C+Inc.%20Monterey%20CA%20NOT%20jobs%20NOT%20pulse%20NOT%20profinder%%20NOT%20dir%20NOT%20company%20intitle%3AEmploynet%2C+Inc."
url=url.replace("%3A",":").replace("%20"," ").replace("%2C+",", ")
search=re.search('.*?q=(.*)',url).groups()[0]

我觉得这是一种不好的方法,是否有更技术的方法来正确编码

【问题讨论】:

  • 不是您问题的答案。为什么不Bing Search API
  • @Unni 正是我正在尝试做的,但搜索 API 要求它像在“框”中一样
  • 相关的,可能是骗人的:URL encoding in python

标签: python urlencode


【解决方案1】:

使用 Python 3:

>>> import urllib.parse
>>> url="https://www.bing.com/search?q=site%3Awww.linkedin.com%20Employnet%2C+Inc.%20Monterey%20CA%20NOT%20jobs%20NOT%20pulse%20NOT%20profinder%%20NOT%20dir%20NOT%20company%20intitle%3AEmploynet%2C+Inc."
>>> urllib.parse.unquote_plus(url)
'https://www.bing.com/search?q=site:www.linkedin.com Employnet, Inc. Monterey CA NOT jobs NOT pulse NOT profinder% NOT dir NOT company intitle:Employnet, Inc.'

或者提取查询并unquote_plus它:

>>> urllib.parse.unquote_plus(urllib.parse.urlsplit(url).query[2:])
'site:www.linkedin.com Employnet, Inc. Monterey CA NOT jobs NOT pulse NOT profinder% NOT dir NOT company intitle:Employnet, Inc.'

【讨论】:

  • @madboy,它适用于所有在查询中具有一个单字母键名的 URL。
猜你喜欢
  • 2020-03-02
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2010-12-11
  • 1970-01-01
相关资源
最近更新 更多