当前位置:  开发笔记 > 编程语言 > 正文

铁蟒,美丽的汤,win32应用程序

如何解决《铁蟒,美丽的汤,win32应用程序》经验,为你挑选了3个好方法。

美丽的汤与铁蟒一起工作吗?如果是这样的铁蟒的版本?使用iron python在.net 2.0上分发Windows桌面应用程序是多么容易(主要是c#调用一些python代码来解析html)?



1> bouvard..:

我问自己同样的问题,在努力遵循这里和其他地方的建议,让IronPython和BeautifulSoup与我现有的代码很好地配合,我决定去寻找替代的原生.NET解决方案.BeautifulSoup是一个很棒的代码,起初看起来并没有像.NET那样可用的东西,但后来我找到了HTML Agility Pack,如果有的话,我认为我实际上已经获得了一些可修复的BeautifulSoup.它需要干净或苛刻的HTML并从中生成一个优雅的XML DOM,可以通过XPath查询.使用几行代码,您甚至可以获得原始XDocument 在LINQ to XML中创建查询.老实说,如果网络抓取是你的目标,这是你可能找到的最干净的解决方案.

编辑

这是一个简单的(阅读:根本不健全)示例,解析美国众议院的假期安排:

using System;
using System.Collections.Generic;
using HtmlAgilityPack;

namespace GovParsingTest
{
    class Program
    {
        static void Main(string[] args)
        {
            HtmlWeb hw = new HtmlWeb();
            string url = @"http://www.house.gov/house/House_Calendar.shtml";
            HtmlDocument doc = hw.Load(url);

            HtmlNode docNode = doc.DocumentNode;
            HtmlNode div = docNode.SelectSingleNode("//div[@id='primary']");
            HtmlNodeCollection tableRows = div.SelectNodes(".//tr");

            foreach (HtmlNode row in tableRows)
            {
                HtmlNodeCollection cells = row.SelectNodes(".//td");
                HtmlNode dateNode = cells[0];
                HtmlNode eventNode = cells[1];

                while (eventNode.HasChildNodes)
                {
                    eventNode = eventNode.FirstChild;
                }

                Console.WriteLine(dateNode.InnerText);
                Console.WriteLine(eventNode.InnerText);
                Console.WriteLine();
            }

            //Console.WriteLine(div.InnerHtml);
            Console.ReadKey();
        }
    }
}



2> technomalogi..:

我已经测试并使用了带有IPy 1.1和2.0的BeautifulSoup(忘记了哪个测试版,但这是几个月前).如果您仍然遇到问题,请发表评论,我会挖出我的测试代码并发布.



3> Devin Jeanpi..:

如果BeautifulSoup不适用于IronPython,那是因为IronPython没有实现整个Python语言(与CPython相同).BeautifulSoup是纯python,没有C扩展,所以唯一的问题是IronPython与CPython在Python源代码方面的兼容性.不应该是一个,但如果有的话,错误将是显而易见的("没有模块命名......","没有命名的方法......"等等.谷歌表示只有一个BS的测试失败了IronPython.它可能有效,现在可以修复该测试.我不知道.

尝试看看,这将是我的建议,除非任何人有更具体的东西.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有