zoukankan      html  css  js  c++  java
  • 极验滑块验证的使用

     

    # 爬取河南企业信用信息公示系统为案例
    # 案例网址 http://gsxt.haaic.gov.cn/index.jspx

    下面这个选项一定要勾选

    极验打码要的参数

     要爬取数据所在的页面

     根据上面的截图然后找到相对应的菜蔬  然后下面这个代码就可以实现打印list页面的源代码 ,剩下的就是用解析器解析的部分。

    import requests
    import json
    from urllib.parse import quote
    class Qy():
        def __init__(self):
            self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'}
            self.req = requests.session()
    
    
        def get_html(self,url):
            try:
                response = self.req.get(url,headers=self.headers)
                if response.status_code == 200:
                    return response.text
                return None
            except:
                print('获取challenge和ht信息失败')
    
        def parse_html(self,html):
            html_dic = json.loads(html)
            url = "http://jiyanapi.c2567.com/shibie?user=username&pass=123456&return=json&ip=&gt=" + html_dic['gt'] + "&challenge=" + html_dic['challenge']
            return self.get_html(url)
    
        def get_page_html(self,html_json):
            url = 'http://gsxt.haaic.gov.cn/validateSecond.jspx'
            html_dic = json.loads(html_json)
            data = {
                'searchText': '中国',
                'geetest_challenge': html_dic['challenge'],
                'geetest_validate': html_dic['validate'],
                'geetest_seccode': html_dic['validate']+'|jordan',
            }
            html = self.req.post(url,headers=self.headers,data=data).text
            html_di = json.loads(html)
            name = quote(quote('中国'))
            url1 = 'http://gsxt.haaic.gov.cn/'+html_di['obj']+'&searchType=1&entName='+name
            return self.req.get(url,headers=self.headers).text
    
    
    
    def main():
        qy = Qy()
        # 获取challenge和ht信息
        html = qy.get_html('http://gsxt.haaic.gov.cn/registerValidate.jspx')
        # 使用打码平台进行打码
        html_json = qy.parse_html(html)
        # 获取网页的数据
        data = qy.get_page_html(html_json)
        # 打印网页的数据
        print(data)
    
    
    if __name__ == '__main__':
        main()

  • 相关阅读:
    ASP.NET验证控件的使用 拓荒者
    读书笔记:MFC单文档应用程序结构分析 拓荒者
    MFC单文档(SDI)全屏程序的实现 拓荒者
    jQuery的animate函数
    设备尺寸杂谈:响应性Web设计中的尺寸问题
    Yeoman学习与实践笔记
    IE对文档的解析模式及兼容性问题
    推荐给开发和设计人员的iPad应用
    几个移动应用统计平台
    颜色、网页颜色与网页安全色
  • 原文地址:https://www.cnblogs.com/zlel/p/9042769.html
Copyright © 2011-2022 走看看