首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Beautiful Soup访问网站主页上的所有元素

使用Beautiful Soup访问网站主页上的所有元素
EN

Stack Overflow用户
提问于 2020-11-12 20:36:17
回答 1查看 50关注 0票数 0

我想从这个网站上摘录一些新闻:

https://www.bbc.com/news

你可以看到网站有诸如Home、美国大选、冠状病毒等类别。

例如,如果我转到特定的新闻文章,比如:https://www.bbc.com/news/election-us-2020-54912611

我可以写一个抓取器,它会给出标题,这是代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
    
response = requests.get("https://www.bbc.com/news/election-us-2020-54912611", headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
    
title = soup.select("header h1")
print(title)

在这个网站上有数以百计的新闻,所以我的问题是,有没有办法从主页url访问网站(所有类别)上的每一篇新闻文章?在主页上我不能看到所有的新闻文章,我只能看到其中的一些,所以有没有办法让我加载整个网站的整个HTML代码,这样我就可以很容易地获得所有的新闻标题:

代码语言:javascript
复制
soup.select("header h1")
EN

回答 1

Stack Overflow用户

发布于 2020-11-12 20:57:05

好的,在得到这个标题之后,你还可以在这个页面上有其他的链接,你只需要再次打开那个链接,并从那个链接中获取信息,它可以是这样的:

代码语言:javascript
复制
visited = set()    
links = [....]
    while links:
         if link_for_fetch in visited:
              continue
         link_for_fetch = links.pop()
         content = get_contents(link_for_fetch)
         headlines += parse_headlines()
         links += parse_links()
         visited.add(link_for_fetch)

这只是伪代码,你可以用任何编程语言编写。但这可能需要花费大量时间来解析整个站点:(而且机器人可能会阻止你的ip地址

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64804060

复制
相关文章

相似问题

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