python+selenium实现所有网站爬取

公司有三百的不同的网站,前端代码的逻辑也不同。我需要写一个公共的python+selenium的脚本,可以对分别每个网站进行深度爬虫,获取所有的访问后端的request请求。请问这个问题可以实现吗?
我看网上的代码都是针对具体一个网站的爬虫,请问可以写一个通用的可以针对所有网站的爬虫吗?本人也是刚刚接触爬虫,谢谢大家了。

最多实现进入网站首页,其他的就不行了,因为每个网址都不同,页面元素也不同,所以做不到你说的通用

如果只是想获取页面内的所有请求,你可以试着抓下页面内所有url的值。

三百个不同的网站,只是相当于三百个不同的url,三百个不同的页面。爬虫能不能通用,取决于能不能将每个页面的解析提出共通。如果不能将所有页面共通处理,也可以试着分类进行处理。

最终能不能行,其实取决于你根据自己的实际需求,对现有网站分析归纳的结果。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7531064
  • 除此之外, 这篇博客: 使用python+selenium超级鹰破解图像识别验证码中的 通过超级鹰的识别可以看到返回的坐标是以 | 分割的那我们就给它提取出来并且放入一个列表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • all_list=[]   #存储即将要点击点的坐标
            global x
            if '|' in result:
                    list_1=result.split('|')
                    count_1=len(list_1)
                    for i in range(count_1):
                            xy_list=[]
                            x=int(list_1[i].split(',')[0])
                            y = int(list_1[i].split(',')[1])
                            xy_list.append(x)
                            xy_list.append(y)
                            all_list.append(xy_list)
            else:
                    x = int(list_1[i].split(',')[0])
                    y = int(list_1[i].split(',')[1])
                    xy_list = []
                    xy_list.append(x)
                    xy_list.append(y)
                    all_list.append(xy_list)
            #遍历列表,使用动作链对每一个列表元素对应的x,y指定的位置点击操作
            print(all_list)
  • 以下回答由chatgpt基于相关博客总结生成:

    对于编写通用的Python+Selenium脚本用于爬取多个不同网站的后端请求,可以参考以下步骤:

    1. 导入所需的模块和库:
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    1. 定义一个函数,用于爬取单个网站的后端请求:
    def crawl_website(url):
        # 初始化浏览器驱动
        chromeOptions = webdriver.ChromeOptions()
        # 设置代理等其他参数
        driver = webdriver.Chrome(options=chromeOptions)
    
        # 访问网站
        driver.get(url)
    
        # 处理网站特定的认证证书弹窗
        handle_certificate_warning(driver)
    
        # 在这里添加其他需要的爬取逻辑,例如查找元素,点击按钮等
    
        # 关闭浏览器驱动
        driver.quit()
    
    1. 定义一个函数,用于处理网站的认证证书弹窗:
    def handle_certificate_warning(driver):
        # 定位认证证书弹窗的元素
        loc = (By.XPATH, '//button[@id="details-button"]')
        loc2 = (By.XPATH, '//a[@id="proceed-link"]')
    
        # 使用显示等待,等待认证证书弹窗出现
        WebDriverWait(driver, 4).until(EC.visibility_of_element_located(loc))
    
        # 点击确认按钮
        driver.find_element(*loc).click()
        time.sleep(1)
    
        # 等待继续前往链接出现
        WebDriverWait(driver, 4).until(EC.visibility_of_element_located(loc2))
    
        # 点击继续前往链接
        driver.find_element(*loc2).click()
    
        # 可以根据需要添加其他处理逻辑
    
    1. 在主程序中调用crawl_website函数,传入需要爬取的网站URL:
    if __name__ == '__main__':
        websites = ['https://example1.com', 'https://example2.com', 'https://example3.com']
    
        for website in websites:
            crawl_website(website)
    

    通过以上步骤,你可以编写一个通用的Python+Selenium脚本,用于爬取多个不同网站的后端请求。根据不同网站的特殊情况,你可以在crawl_website函数中添加对应的爬取逻辑和处理方式,以适配不同的网站。同时,通过handle_certificate_warning函数,可以处理网站的认证证书弹窗。请注意,具体的爬取逻辑和处理方式需要根据实际情况进行调整和完善。