首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法两次使用随机链接?例如,就像维基百科的随机文章生成器,但是对于一个不同的站点

有没有办法两次使用随机链接?例如,就像维基百科的随机文章生成器,但是对于一个不同的站点
EN

Stack Overflow用户
提问于 2021-09-03 09:53:41
回答 1查看 34关注 0票数 0

我对编程非常陌生,我想为我认为有用的第一个项目编写一些代码,所以我从典型的项目“随机维基百科文章生成器”中获得灵感,以便创建一个具有完全相同功能的项目(获取随机文章的名称,询问用户是否想阅读它,如果他们说是,那么打开它,否则,拿一个新的,以此类推),但是使用斯坦福的哲学百科全书(利用他们有相似的随机入口函数的事实),它一直进行得很好,直到我对它进行了一些调整,因为.text函数的最初问题。

它最初会显示一个特定的标题,但当选择前进的选项时,它会带我到一个与选定的页面不同的页面。我尝试了几种方法让它重用提示标题的同一个url,但我一直无法做到这一点。如果有人能帮助我为第二部分获取正确的链接,或者以某种方式纠正我的代码,以便使其具有功能,我将非常感激。

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

while True:
    url = "https://plato.stanford.edu/cgi-bin/encyclopedia/random"
    reqs = requests.get(url)
    soup = BeautifulSoup(reqs.text, "html.parser")
    for title in soup.find_all('title'):
    print(title.get_text() + "\nDo you want to view this entry?" + "\nType Y for Yes or N for No")
    ans = input("").lower()
    if (ans == "y"):
        url2 = url
        webbrowser.open(url)
        break
    elif (ans == "n"):
        print("Ok. \nTry again!")
        continue
    else:
        print("Invalid choice!!")
        break
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-03 10:33:28

您可以使用reqs.url查看重定向的URL。例如:

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

while True:
    url = "https://plato.stanford.edu/cgi-bin/encyclopedia/random"
    reqs = requests.get(url)
    soup = BeautifulSoup(reqs.text, "html.parser")
    for title in soup.find_all("title"):
        ans = input(
            title.get_text()
            + "\nDo you want to view this entry?"
            + "\nType Y for Yes or N for No: "
        ).lower()
        if ans == "y":
            print("The link is: {}".format(reqs.url))
            break
        elif ans == "n":
            print("Ok. \nTry again!")
            continue
        else:
            print("Invalid choice!!")
            break

指纹:

代码语言:javascript
复制
Arabic and Islamic Natural Philosophy and Natural Science (Stanford Encyclopedia of Philosophy)

Do you want to view this entry?
Type Y for Yes or N for No: y
The link is: https://plato.stanford.edu/entries/arabic-islamic-natural/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69042967

复制
相关文章

相似问题

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