首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DuckDuckGo结果抓取

DuckDuckGo结果抓取
EN

Stack Overflow用户
提问于 2020-12-28 12:12:54
回答 1查看 359关注 0票数 1

我在运行我的代码时遇到了问题,并在StackOverflow上找到了一个完美的解决方案。但是,当我进行必要的更改并运行它时,我得不到任何输出。

代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import urllib.parse
import requests

r = requests.get('https://duckduckgo.com/html/?q=test')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('a', attrs={'class':'result__url'}, href=True)

for link in results:
    url = link['href']
    o = urllib.parse.urlparse(url)
    d = urllib.parse.parse_qs(o.query)
    print(d['uddg'][0])

路径组件的uddg ()“获取查询字符串并将其传递给urlparse进一步处理,然后可以使用urlparse名称提取链接。”这应该是最初的几个结果:

代码语言:javascript
复制
http://www.speedtest.net/
https://www.merriam-webster.com/dictionary/test
https://en.wikipedia.org/wiki/Test
https://www.thefreedictionary.com/test
https://www.dictionary.com/browse/test

我没有得到任何输出。输出:

代码语言:javascript
复制
In [13]: runfile('C:/Users/Spurs/.spyder-py3/temp.py', wdir='C:/Users/Spurs/.spyder-py3')
In [14]:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-28 16:37:15

您将获得一个403,因此您没有任何结果。要解决此问题,请添加headers

下面是操作步骤:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:84.0) Gecko/20100101 Firefox/84.0",
}

page = requests.get('https://duckduckgo.com/html/?q=test', headers=headers).text
soup = BeautifulSoup(page, 'html.parser').find_all("a", class_="result__url", href=True)

for link in soup:
    print(link['href'])

输出:

代码语言:javascript
复制
https://www.merriam-webster.com/dictionary/test
https://www.speedtest.net/
https://www.dictionary.com/browse/test
https://www.thefreedictionary.com/test
https://www.thesaurus.com/browse/test
https://en.wikipedia.org/wiki/Test
https://www.tests.com/
http://speedtest.xfinity.com/
https://fast.com/
https://www.spectrum.com/internet/speed-test
https://projectstream.google.com/speedtest
https://dictionary.cambridge.org/dictionary/english/test
http://www.act.org/content/act/en/products-and-services/the-act.html
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65472938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档