我如何在一个网页刮所有的链接?我的代码只删除了一些链接

2024-04-20 10:59:52 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,用于清除网页中的所有链接:

from bs4 import BeautifulSoup
import requests
import re

page = requests.get("http://www3.asiainsurancereview.com/News")
soup = BeautifulSoup(page.text, "html.parser")
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
    print(link.get('href'))

links.close()

但它只列出了下拉列表中存在的链接。为什么?为什么它没有“看到”网页上新闻文章的链接?我真的想把所有的新闻文章都删掉。我尝试了以下操作,以识别一个标记并在该标记中刮取新闻文章链接:

import requests
import re

links=open("Life_and_health_links.txt", "a")
page = requests.get("http://www3.asiainsurancereview.com/News")
soup = BeautifulSoup(page.text, "html.parser")

li_box = soup.select('div.col-sm-5 > ul > li > h5 > a')
for link in li_box:
    print(link['href'])

当然,这只显示特定标记中的链接。要列出其他标记中的链接,我必须多次运行此代码,指定要列出其链接的特定标记。但是,如何在所有标签中列出新闻文章的所有链接,并跳过不属于新闻文章的链接?你知道吗


Tags: 标记importrehttpget链接文章page
1条回答
网友
1楼 · 发布于 2024-04-20 10:59:52

你需要做一些研究来找到新闻链接的共同模式。你知道吗

试试这个,希望有用。你知道吗

li_box = soup.select("div ul li h5 a")
for a in li_box:
    print(a['href'])

相关问题 更多 >