首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从查询中获取给定站点的urls

从查询中获取给定站点的urls
EN

Stack Overflow用户
提问于 2022-11-03 14:46:25
回答 1查看 24关注 0票数 0

我试图从一个基于关键字的网站获取URL。我只想打印前10个结果(以避免许多请求的错误)。

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

queries = ["ner", "spacy", "bert", "lda"]

for i in queries:
    reqs = requests.get("https://github.com/search?q=" + str(i))
    soup = BeautifulSoup(reqs.text, 'html.parser')

    for links in soup.select('a'):
        print(links.get('href'))

我的产出:

代码语言:javascript
复制
https://github.com/
/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2Fsearch&source=header
/features/actions
/features/packages
/features/security
/features/codespaces
/features/copilot
/features/code-review
/features/issues
/features/discussions
/features
https://docs.github.com
https://skills.github.com/

我在找一张包含这些词的链接列表.

EN

回答 1

Stack Overflow用户

发布于 2022-11-03 15:02:21

假设您只想获得结果的链接,那么只需选择每个列表项中的第一个链接就可以了:

代码语言:javascript
复制
for e in soup.select('.codesearch-results li'):
    print(e.a.get('href'))

示例

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

queries = ["ner", "spacy", "bert", "lda"]

for i in queries:
    reqs = requests.get(f"https://github.com/search?q={i}")
    soup = BeautifulSoup(reqs.text, 'html.parser')

    for e in soup.select('.codesearch-results li'):
        print(e.a.get('href'))

输出

代码语言:javascript
复制
/shiyybua/NER
/ryanoasis/nerd-fonts
/preservim/nerdtree
/bmild/nerf
/wavewangyue/ner
/synalp/NER
/preservim/nerdcommenter
/containerd/nerdctl
/NervJS/nerv
/deeppavlov/ner
/explosion/spaCy
/explosion/spacy-course
/explosion/spacy-models
/explosion/spacy-transformers
/chartbeat-labs/textacy
/susanli2016/NLP-with-Python
/explosion/spacy-streamlit
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74304979

复制
相关文章

相似问题

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