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

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



一只甜甜圈
浏览 73回答 1
1回答

皈依舞

好吧,我曾经缩短了选择值以开头的re所有标签的路径,您也可以用不同的方式来完成,例如。ahreftoptenfor item in soup.select("a[href^=topten]"):然后我得到了标签内的所有文本,然后stripped将其与strip=True并放置一个空separator,这样text就不会一起分配。import requestsfrom bs4 import BeautifulSoupimport redef 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 NetanyahuCrash of TWA Flight 800Russia elects YeltsinU.S . elects ClintonHutu-Tutsi conflict in central AfricaPeace, elections in BosniaU.S . base bombed in Saudi ArabiaCentennial Olympic GamesAdvances against AIDSUnabomb suspect Ted Kaczynski arrested
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5