怎么对某个网页中具有筛选功能的数据模块进行指定数据,然后爬取指定数据下的数据

目前爬虫学习中,对有筛选功能的数据爬取模糊,希望得到指教,感谢

参考我的博客, 有爬虫教程

具体你要给出网页,一般来说筛选会通过 url 地址中问号后的参数体现出来,或者切换不同的地址。爬虫模仿请求对应的地址即可。

比如呢?你要爬取哪个网站

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7790804
  • 你也可以参考下这篇文章:在模型评估过程中,有哪些主要的验证方法,他们的优缺点是什么?在自助法的采样过程中,对N个样本进行N次自助采样,当N区域无穷大时最终有多少个数据从未被选择过?
  • 除此之外, 这篇博客: 一种根据两两相关系数将多个对象进行分组,求解最优分组方案,并保证组内所有对象互相关的排列组合算法中的 问题描述: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    计算完所有表计之间相关系数之后,遇到一下几个问题:
    1、同时存在相关关系的表计有很多,怎么进行分组,每组里面包含多少个对象怎么确定,有很多种可能,哪一种可能是最合理的。
    2、从最大分组开始轮寻,采用逐个对象进行两两比对,计算量大,100多个表跑好几个小时,怎么解决性能问题。
    3、通过排列组合方法寻找所有组合可能,100多个表直接分组会导致机器内存异常,需要先进行一定处理,勉强可以分组,耗性能。

    逐一匹配代码:

    def get_class(similarity_m,threshold):
        """
        similarity_array:相似度矩阵,带有行名和列名
        
        step1:获取输入数据的第0行数据
        step2:若第0行满足指定阈值的个数只有1个,则重新设置阈值,否则进行下一步
        step3:由step2的返回结果所形成的列名构成新的矩阵,判断该矩阵中是否所有数都满足阈值条件:
        若不满足:从中取出子矩阵,并降低阈值,重复上述步骤
        若满足:返回列名
        """
        similarity_row = similarity_m.iloc[0,:]
        names = np.array(list(similarity_row[similarity_row>=threshold].index))
        
        assert names.shape[0]>1,print("域值过大,请重新输入")
    #     if names.shape[0]<=1:
    #         print("域值过大,请重新输入")
    #         return 0
        
        similarity_m_new = similarity_m.loc[names,names]
        names_logic = np.array(similarity_m_new>=threshold).all(axis=0)
        
        if names_logic.sum()<=1 and similarity_m_new.shape[0]>2:
            similarity_m_new = similarity_m_new.loc[names[1:],names[1:]]
            threshold -= 0.01
            return get_class(similarity_m_new,threshold)
        else:
            print(threshold)
            result = names[names_logic]
            return result
    

    排列组合代码:

    def combine2(n, k, similarity_m, threshold):
        """
        实现一组数列的组合种类
        n:长度为n的数列
        k:抽取的个数
        """
        def backtrace(tmp, index):
            """
            tmp:存放组合
            """
            if len(tmp) == k:
                similarity_m_sub = similarity_m.iloc[tmp,tmp]
                if np.array(similarity_m_sub>=threshold).all():
                    print(tmp)
                    res.append(tmp)
                return
    
            for i in range(index, n):
                backtrace(tmp + [i], i + 1)
    
        res = []
        for i in range(n + 1 - k):
            backtrace([i], i + 1)
        return res
    

  • 您还可以看一下 刘建萍老师的人工智能系列课程零基础讲解知识点和实例应用线性回归梯度下降逻辑回归课程中的 讲解机器学中会涉及到的有关数学方面的知识储备有哪些小节, 巩固相关知识点

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