【问题标题】:How to get unique search results?如何获得独特的搜索结果?
【发布时间】:2016-06-20 07:03:17
【问题描述】:

我正在使用这个(https://github.com/thibauts/duckduckgo) 模块来抓取duckduckgo 搜索结果:

>>> import duckduckgo
>>> for links in duckduckgo.search('Yellow Chris Martin',max_results=20):
...     print links

在输出中我得到了搜索结果,似乎有
同一链接重复4次

输出:

http://www.youtube.com/watch?v=ZTEKsbLl64w
http://www.youtube.com/watch?v=ZTEKsbLl64w
http://www.youtube.com/watch?v=ZTEKsbLl64w
http://www.youtube.com/watch?v=ZTEKsbLl64w
https://en.wikipedia.org/wiki/Yellow_(Coldplay_song)
https://en.wikipedia.org/wiki/Yellow_(Coldplay_song)
https://en.wikipedia.org/wiki/Yellow_(Coldplay_song)
https://en.wikipedia.org/wiki/Yellow_(Coldplay_song)
http://www.youtube.com/watch?v=1MwjX4dG72s
http://www.youtube.com/watch?v=1MwjX4dG72s
http://www.youtube.com/watch?v=1MwjX4dG72s
http://www.youtube.com/watch?v=1MwjX4dG72s

如何解决此问题并获得与使用搜索引擎时相同的结果。

【问题讨论】:

  • 我知道这个问题有点陈旧,所以为了后代,请不要刮我们的结果。我们无权联合链接,因此将此类程序化访问视为滥用。我们有一个开放的 API(记录在此:duckduckgo.com/api),您可以免费使用。感谢理解!
  • (关于上一条评论给未来读者的注释:Jaryd Malbin 最初以anwer 发布它,后来被版主转为评论。Jaryd 似乎隶属于 DuckDuckGo,尽管它当时没有在他的回答或 SO 个人资料中提及。总而言之:问题所问的内容违反了 DuckDuckGo 的要求,因此鼓励人们使用评论中链接到的 API。)

标签: python-2.7 web-scraping duckduckgo-api duckduckgo


【解决方案1】:

您可以使用将 duckduckgo 对象转换为列表,然后使用 set() :

count = 10
while( set(list(duckduckgo.search('Yellow Chris Martin',max_results=count)) ) < some_val ):
    count = count + 1

for links in set(list(duckduckgo.search('Yellow Chris Martin',max_results=count)) :
    print links

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2019-11-15
    • 2017-06-28
    • 1970-01-01
    • 2010-10-29
    相关资源
    最近更新 更多