python 爬虫问题

需求是这样的,我需要从网站上爬取马匹的信息,当我爬取完一匹马的信息,要去爬取它的父母的信息,以及它父母的父母.以此类推下去,每次爬取完父母信息添加到数据库后,在子女的父母字段添加对应的id(刚添加的父母信息中取的id)。
当前有两个网站,一个网站是马匹的详细信息,也就是需要获取数据向数据库里面添加信息的网站,它的网站名格式是这样的 www.mapi.com/edit/马匹名称,下图为网站实图

img

另一个网站可以获取到马匹父母名称的网站,(有了名称就可以根据名字访问到第一个马匹详细信息的网站),它的网站名格式是这样的 www.mapi.com/马匹名称,下图为网站实图(画圈处为父母名称,后面的内容不用看)

img

我怎么才能在添加完一个马匹,同时添加完他的父母的信息后,在去添加父亲的父母,母亲的父母.以此类推下去添加到第一匹马的祖宗?使用递归吗?没思路,应该怎么写啊.

本人刚接触爬虫,望各位伸出援手~

Python爬虫常见的问题包括:

  1. 被反爬虫机制屏蔽:许多网站为防止爬虫activities会部署反爬虫机制,如IP限制、User-Agent检测等,这会导致爬虫被屏蔽无法访问。
    解决方法:
  • 使用随机User-Agent:随机 masquerade 成正常用户
  • 设置代理IP:使用代理IP随机变换IP访问
  • 设置 time.sleep() 函数控制访问频率,降低访问强度
  1. 数据提取失败:由于网页代码更新导致原有的XPath或CSS选择器无法定位到数据,造成数据提取失败。
    解决方法:
  • 人工分析网页代码,更新选择器规则
  • 使用更加稳定的数据抓取规则,如正则表达式等
  • 采用机器学习或深度学习方法自动生成抓取规则
  1. 被ban:部分网站会根据爬虫特征对爬虫进行 fingerprints 封禁,导致ip被加入黑名单,无法访问。
    解决方法:
  • 使用代理IP rotation 随即变换代理地址
  • 降低爬取频率,reduce 访问强度
  • 模拟真实用户行为,设置随机点击与浏览等行为
  • 改变爬虫特征,如随机变换 User-Agent 等
  1. 数据存储失败:爬取的数据量过大,超出存储空间,造成数据存储失败。
    解决方法:
  • 提高数据库存储空间
  • 使用其他大容量存储方式,如HDFS
  • 优化储存结构,压缩存储数据
  • 过滤冗余数据,只储存关键信息
    除此之外,爬虫启动失败、运行缓慢等也是比较常见的问题,主要原因是环境配置问题或网络问题,需要检查系统环境与网络连接。
    总之,Python爬虫在实际运行中常会遇到各种问题,重要的是要分析问题根源,并采取相应的解决方法修复问题,才能确保爬虫系统稳定高效运行。如果您的爬虫也遇到问题,可以根据问题现象查找上述或其他对应的解决方案。也欢迎与我联系,我很乐意为您提供更详细的帮助。