python反爬问题

想知道表单数据加密怎么解决,在源代码里添加断点刷新看url的时候断点应该添加到哪里?

可以在XHR/fetch Breakpoints提交url进行断点测试

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7810108
  • 你也可以参考下这篇文章:Python爬虫入门,最简单的爬虫代码,网站如何判断是人为的操作还是爬虫程序的操作,为url参数中的中文参数进行编码,基于百度搜索的爬虫程序
  • 您还可以看一下 于成令老师的Python爬虫项目实战系列教程课程中的 获取完整版视频URL并下载视频小节, 巩固相关知识点
  • 除此之外, 这篇博客: Python爬虫尝试-爬取指定股票的财务报表(东方财富网)中的 根据获取的url地址下载文件或者输出正文内容 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以帮助你解决这个问题。

    问题:在Python中解决表单数据加密的问题。

    解决方案: 1. 首先,你需要了解表单数据加密的具体方式,例如常见的加密方式有AES、RSA等。然后,你需要使用相应的加密算法对请求的数据进行加密。这可以通过使用Python的加密库来实现。

    下面是使用AES加密算法对表单数据进行加密的示例代码:

    import base64
    from Crypto.Cipher import AES
    
    def encrypt_data(data, key):
        cipher = AES.new(key, AES.MODE_ECB)
        padded_data = pad_data(data)
        encrypted_data = cipher.encrypt(padded_data)
        encoded_data = base64.b64encode(encrypted_data)
        return encoded_data
    
    def pad_data(data):
        # 根据加密算法要求,对数据进行填充
        return data + (AES.block_size - len(data) % AES.block_size) * chr(AES.block_size - len(data) % AES.block_size)
    
    # 示例数据和密钥
    data = 'example'
    key = 'secretkey'
    
    # 加密数据
    encrypted_data = encrypt_data(data, key)
    print(encrypted_data)
    
    1. 其次,解决反爬问题可以使用一些常见的方法,例如添加代理IP、使用随机User-Agent头部信息、添加延时等。以下是一些示例方法的代码:

    使用代理IP:

    import requests
    
    proxies = {
      'http': 'http://proxy.example.com:8080',
      'https': 'https://proxy.example.com:8080',
    }
    
    response = requests.get(url, proxies=proxies)
    

    使用随机User-Agent头部信息:

    import random
    import requests
    
    user_agents = [
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
        'Mozilla/5.0 (Windows NT 10.0; wow64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
    ]
    
    headers = {
        'User-Agent': random.choice(user_agents),
    }
    
    response = requests.get(url, headers=headers)
    

    添加延时:

    import time
    import requests
    
    time.sleep(2)  # 2秒延时
    
    response = requests.get(url)
    
    1. 最后,关于在源代码中添加断点来刷新页面并查看URL,断点的设置位置取决于你在代码中希望观察URL的具体位置。可以根据你的需求在代码中的合适位置添加断点。

    希望这些解决方案对你有帮助。如果你还有其他问题,请随时提问。


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