如何从我的网络抓取工具中删除 <a href... 标签

How do I remove the <a href... tags from my web scrapper

所以,现在,我想做的是尝试从 rottentomatoes.com 中抓取 table,但每次我 运行 代码,我面临一个问题,它只打印

到目前为止,这是我的代码:

from requests import get
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np

url = "https://www.rottentomatoes.com/top/bestofrt/"
headers = {"Accept-Language": "en-US, en;q=0.5"}

titles = []
year_released = []

def get_requests():
  try:
    result = requests.get(url=url)

    soup = BeautifulSoup(result.text, 'html.parser')
    table = soup.find('table', class_='table')

    for name in table:
      td = soup.find_all('a', class_='unstyled articleLink')
      titles.append(td)
      print(titles)
      break
 except:
      print("The result could not get fetched")

这是我的输出:

[[本周上映,票房最高,即将上映,周末收入,经过认证的新鲜电影,DVD 和流媒体,VUDU,Netflix 流媒体,iTunes,亚马逊和亚马逊 Prime,顶级 DVD 和流媒体,新发行, 即将推出 DVD, 认证新鲜电影, 浏览全部, 热门电影, 预告片, 论坛, 查看全部 , 查看全部 , 热门电视节目, 认证新鲜电视, 24 帧, All-Time 列表, 狂欢指南, 电视漫画, 倒计时, 评论家共识, 五部最喜欢的电影, 正在播放, 家长指导, 红地毯综述, 记分卡, Sub-Cult, Total Recall, 视频采访, 周末票房, 每周番茄酱, 看点, The Zeros, 查看全部, 查看全部, 查看全部, 它发生了一夜 (1934), 公民凯恩 (1941), 绿野仙踪 (1939), 摩登时代 (1936), 黑豹 (2018), 寄生虫(机生忠)(2019), 复仇者联盟:终局之战 (2019), 卡萨布兰卡 (1942), 荒野行动 (2019), 我们 (2019), 玩具总动员 4 (2019), 伯德夫人 (2017), 碟中谍 - 辐射 (2018), 黑色党徒 (2018), 滚出去 (2017), 爱尔兰人 (2019), 教父 (1972), 疯狂的麦克斯:狂暴之路 (2015), Spider-Man:进入Spider-Verse(2018), 月光 (2016), 日落大道 (1950), 关于夏娃的一切 (1950), 卡利加里博士的内阁(Das Cabinet des Dr. Caligari)(1920), 费城故事 (1940), 罗马 (2018), 神奇女侠 (2017), 一个明星的诞生 (2018), 头脑特工队 (2015), 寂静之地 (2018), 迈阿密一夜 (2020), 八年级(2018), 丽贝卡 (1940), 聪明书 (2019), 洛根 (2017), 他的女孩星期五 (1940), 燃烧女子的肖像 (Portrait de la jeune fille en feu) (2020), 可可 (2017), 敦刻尔克 (2017), 明星 Wars:最后的绝地武士 (2017), 歌剧院之夜 (1935), 水的形状 (2017), 雷神:诸神黄昏 (2017), 聚光灯 (2015), 告别 (2019), 塞尔玛 (2014), 第三个人 (1949), 后 Window (1954), E.T。 Extra-Terrestrial (1982), 七武士 (Shichinin no Samurai) (1956), 大幻觉(Grand Illusion)(1938), 到达(2016), 雨中歌唱 (1952), 最爱 (2018), 双重赔偿(1944), 西线无战事 (1930), 白雪公主和七个小矮人 (1937), 婚姻故事 (2019), 大病 (2017), 在海滨 (1954), 明星 Wars:第七集 - 原力觉醒 (2015), 一个美国人在巴黎 (1951), 我们生命中最美好的岁月 (1946), 大都会 (1927), 少年时代 (2014), 地心引力 (2013), 不留痕迹 (2018), 马耳他猎鹰 (1941), 隐形人 (2020), 为奴十二年 (2013), 好莱坞往事 (2019), 阿尔戈 (2012), 灵魂 (2020), 马雷尼的黑底裤 (2020), 孩子 (1921), 海边的曼彻斯特 (2016), Nosferatu, a Symphony of Horror (Nosferatu, eine Symphonie des Grauens) (Nosferatu the Vampire) (1922), 罗宾汉历险记 (1938), 爱乐之城 (2016), 西北偏北 (1959), 劳拉 (1944), Spider-Man:远离家乡(2019), 超人总动员 2 (2018), 疯狂动物城 (2016), 异形 (1979), 金刚 (1933), 怀疑的阴影 (1943), 请以你的名字呼唤我 (2018), 惊魂记 (1960), 1917 (2020), L.A。机密 (1997), 佛罗里达项目 (2017), War 人猿星球 (2017), 帕丁顿熊 2 (2018), 艰难的一天之夜 (1964), 寡妇 (2018), 从不 很少 有时 总是 (2020), 宝贝Driver (2017), Spider-Man: 似水流年 (2017), 教父,第二部分 (1974), 阿尔及尔战役 (La Battaglia di Algeri) (1967),查看全部,查看全部]]

通过@F.Hoque 提供的 pandas.read_html() 阅读表格可能会更精简,但您也可以仅使用 BeautifulSoup 获得结果。

遍历 <table> 的所有 <tr>,通过 .text / .get_text()tags 中选择信息并将其结构化存储在字典列表中:

data = []

for row in soup.select('table.table tr')[1:]:
    data.append({
        'rank': row.td.text,
        'title': row.a.text.split(' (')[0].strip(),
        'releaseYear': row.a.text.split(' (')[1][:-1]
    })

例子

import requests
from bs4 import BeautifulSoup

url = "https://www.rottentomatoes.com/top/bestofrt/"
headers = {"Accept-Language": "en-US, en;q=0.5"}

result = requests.get(url=url)
soup = BeautifulSoup(result.text, 'html.parser')

data = []

for row in soup.select('table.table tr')[1:]:
    data.append({
        'rank': row.td.text,
        'title': row.a.text.split(' (')[0].strip(),
        'releaseYear': row.a.text.split(' (')[1][:-1]
    })

data

输出

[{'rank': '1.', 'title': 'It Happened One Night', 'releaseYear': '1934'},
 {'rank': '2.', 'title': 'Citizen Kane', 'releaseYear': '1941'},
 {'rank': '3.', 'title': 'The Wizard of Oz', 'releaseYear': '1939'},
 {'rank': '4.', 'title': 'Modern Times', 'releaseYear': '1936'},
 {'rank': '5.', 'title': 'Black Panther', 'releaseYear': '2018'},...]