You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python爬虫如何获取分类链接?新手爬取小说网站遇阻求助

嘿,我来帮你捋捋这个爬虫的问题哈~

问题出在哪?

你现在的代码里用soup.findAll(class_="search-by-genre")拿到的是分类的容器元素,而不是直接的链接标签。直接打印link只会输出整个标签对象,就算你尝试link.get("href")也大概率返回None——因为search-by-genre类对应的不是<a>标签本身,而是包裹着分类链接的父元素呀。

修正后的代码

我给你调整了代码,既能正确拿到分类链接,还处理了相对路径的问题:

from requests import get
from bs4 import BeautifulSoup

site = "https://readlightnovel.org/"
# 获取HTML页面,补全User-Agent避免被拦截
r = get(site, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"})
html_content = r.content

# 解析HTML
soup = BeautifulSoup(html_content, "lxml")

# 先找到所有分类容器
category_containers = soup.findAll(class_="search-by-genre")

for container in category_containers:
    # 从容器里提取所有<a>标签(也就是分类链接)
    genre_links = container.find_all("a")
    for link in genre_links:
        href = link.get("href")
        # 把相对路径转成完整URL
        full_link = site + href if href.startswith("/") else href
        print(f"分类链接:{full_link}")
        
        # 到这里就可以写逻辑进入每个分类爬文章啦
        # 比如可以写个函数,传入full_link去解析文章列表
几个关键提示
  • 一定要从容器里找<a>标签:search-by-genre是分类组的容器,里面才藏着真正的链接标签。
  • 处理相对路径:网站里的链接很多是/genre/xxx这种相对路径,必须拼接成完整URL才能正常请求。
  • 补全User-Agent:有些网站会检查这个字段,补全后能降低被反爬拦截的概率。

内容的提问来源于stack exchange,提问作者Faheem Akhtar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:47:55