python
  • scrapy
  • scrapy-spider
  • 2017-05-09 84 views 0 likes 
    0

    我有一个项目,我需要在html代码中获取脚本。Python Scrapy获取HTML <script>标签

     <script> 
         (function() { 
         .../More Code 
         Level.grade = "2"; 
    
         Level.level = "1"; 
    
         Level.max_line = "5"; 
    
         Level.cozum = 'adım 12\ndön sağ\nadım 13\ndön sol\nadım 11'; 
    .../More Code 
    </script> 
    

    我如何获得唯一的 “ADIM 12 \ NDON SAG \纳迪姆13 \ NDON溶胶\纳迪姆11” 这个代码?

    感谢帮助

    +1

    也许能beautifulsoup HTML解析器 – budge

    回答

    0

    使用正则表达式来做到这一点

    首先抢到就是SCRIPT标签像

    response.css("script").extract_first() 
    

    然后内容使用正则表达式

    (Level\.cozum =)(.*?)(\;) 
    

    观看演示这里https://regex101.com/r/YxHRmR/1

    这是代码

    import re 
    regex = r"(Level\.cozum =)(.*?)(\;)" 
    
    test_str = ("<script>\n" 
        "  (function() {\n" 
        "  .../More Code\n" 
        "  Level.grade = \"2\";\n\n" 
        "  Level.level = \"1\";\n\n" 
        "  Level.max_line = \"5\";\n\n" 
        "  Level.cozum = 'adım 12\\ndön sağ\\nadım 13\\ndön sol\\nadım 11'; \n" 
        ".../More Code\n" 
        "</script>") 
    
    matches = re.findall(regex, test_str, re.MULTILINE) 
    
    print(matches) 
    
    +0

    做到这一点关于你的正则表达式,为什么不'级\ .cozum = '(*?)';'? OP显然只想要那里的变量的值,那么为什么3个捕获组呢? – Granitosaurus

    相关问题