为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Beautiful Soup 抓取网站的前十名故事

使用 Beautiful Soup 抓取网站的前十名故事

一只甜甜圈 2024-01-03 16:35:00
我正在尝试抓取网站:http://edition.cnn.com/EVENTS/1996/year.in.review/ 并尝试获取排名前 10 的故事,这是我迄今为止的尝试,我想知道是否有我忽略了一种更简单的方法来一次性完成这个任务吗?另外,我正在尝试找到一种方法来删除每个打印之间的换行符,因为我不知道为什么每个标题之间有一个间隙。
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

好吧,我曾经缩短了选择值以开头的re所有标签的路径,您也可以用不同的方式来完成,例如。ahreftopten


for item in soup.select("a[href^=topten]"):

然后我得到了标签内的所有文本,然后stripped将其与strip=True并放置一个空separator,这样text就不会一起分配。


import requests

from bs4 import BeautifulSoup

import re



def main(url):

    r = requests.get(url)

    soup = BeautifulSoup(r.content, 'html.parser')

    for item in soup.findAll("a", href=re.compile("^topten")):

        item = item.get_text(strip=True, separator=" ")

        if item:

            print(item)



main("http://edition.cnn.com/EVENTS/1996/year.in.review/main.html")

输出:


Israel elects Netanyahu

Crash of TWA Flight 800

Russia elects Yeltsin

U.S . elects Clinton

Hutu-Tutsi conflict in central Africa

Peace, elections in Bosnia

U.S . base bombed in Saudi Arabia

Centennial Olympic Games

Advances against AIDS

Unabomb suspect Ted Kaczynski arrested


查看完整回答
反对 回复 2024-01-03
  • 1 回答
  • 0 关注
  • 34 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信