python爬取网页链接反复爬取首页

我想爬取所有网页里的文章链接,但总是重复爬取首页,这是为什么

img

img

img

你是不是标签没有弄好,F12看下网页里的文章链接是哪个标签

【以下回答由 GPT 生成】

首先,为了避免重复爬取首页的内容,你可以在每次爬取首页内容后,将已经爬取的链接保存起来。然后,在每次循环遍历页面时,判断当前链接是否已经在已爬取链接列表中,如果在列表中,则跳过该链接,继续下一个链接的爬取。

以下是具体的解决方案:

  1. 导入所需的库:
import requests
from bs4 import BeautifulSoup
  1. 创建一个空列表来保存已爬取的链接:
crawled_links = []
  1. 创建一个函数来爬取链接和解析页面:
def crawl_page(url):
    # 发送请求获取页面内容
    response = requests.get(url)
    content = response.text

    # 使用BeautifulSoup解析页面
    soup = BeautifulSoup(content, 'html.parser')

    # 解析页面中的链接
    links = soup.find_all('a')

    # 遍历链接
    for link in links:
        href = link.get('href')

        # 检查链接是否已经爬取
        if href not in crawled_links:
            # 进行爬取处理,如获取链接标题等
            # ...

            # 将链接添加到已爬取列表中
            crawled_links.append(href)

            # 递归调用函数继续爬取链接
            crawl_page(href)
  1. 在你的主程序中,调用crawl_page函数来进行爬取:
start_url = 'https://example.com'  # 开始爬取的首页链接
crawl_page(start_url)

上述代码中,我们通过crawl_page函数递归地爬取链接和解析页面。同时,对于每个已经爬取的链接,我们将其添加到crawled_links列表中,这样在每次循环遍历页面时,我们可以根据已爬取列表来判断是否需要再次爬取该链接。

希望这个解决方案对你有帮助!如果你有任何问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^