小编car*_*rla的帖子

如何使用HTML Agility包

我如何使用HTML Agility Pack

我的XHTML文档并不完全有效.这就是我想要使用它的原因.我如何在我的项目中使用它?我的项目是在C#中.

html c# html-agility-pack

619
推荐指数
5
解决办法
35万
查看次数

如何在C#中将HTML转换为文本?

我正在寻找C#代码将HTML文档转换为纯文本.

我不是在寻找简单的标签剥离,而是要输出纯文本,并合理保留原始布局.

输出应如下所示:

W3C的Html2Txt

我看过HTML Agility Pack,但我认为这不是我需要的.有没有人有任何其他建议?

编辑:我只是从CodePlex下载HTML Agility Pack ,并运行Html2Txt项目.多么令人失望(至少是html到文本转换的模块)!所有这一切都是剥离标签,压平表等.输出看起来不像Html2Txt @ W3C产生的.太糟糕了,这个来源似乎不可用.我当时想看看是否有更多的"罐装"解决方案.

编辑2:谢谢大家的建议. FlySwat向我倾斜了我想去的方向.我可以使用System.Diagnostics.Process类的"突降"开关运行lynx.exe将文本发送到标准输出,并与捕获标准输出ProcessStartInfo.UseShellExecute = falseProcessStartInfo.RedirectStandardOutput = true.我将把所有这些包装在一个C#类中.这个代码只会偶尔被调用,所以我不太关心产生一个新进程而不是代码执行它.另外,Lynx很快!

html c#

68
推荐指数
4
解决办法
10万
查看次数

HTML敏捷包 - 删除不需要的标签而不删除内容?

我在这里看到了一些相关的问题,但他们并没有完全谈论我面临的同样问题.

我想使用HTML Agility Pack从HTML中删除不需要的标记,而不会丢失标记中的内容.

例如,在我的场景中,我想保留标签" b"," i"和" u".

并输入如下:

<p>my paragraph <div>and my <b>div</b></div> are <i>italic</i> and <b>bold</b></p>

生成的HTML应为:

my paragraph and my <b>div</b> are <i>italic</i> and <b>bold</b>

我尝试使用HtmlNodeRemove方法,但它也删除了我的内容.有什么建议?

c# html-agility-pack

44
推荐指数
4
解决办法
4万
查看次数

在virtualenv中安装uwsgi时出错

我正在尝试在Linux ubuntu,python 3.5.2上安装uswgi

pip install uwsgi
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

Failed building wheel for uwsgi
Run Code Online (Sandbox Code Playgroud)

并在安装日志的末尾

    *** uWSGI compiling embedded plugins ***
[thread 0][x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.o
[thread 1][x86_64-linux-gnu-gcc -pthread] plugins/python/pyutils.o
In file included from plugins/python/python_plugin.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.
In file included from plugins/python/pyutils.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.

----------------------------------------

Command "/home/ubuntu/envflask/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wthov1ur/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-quiupta5-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/envflask/env/include/site/python3.5/uwsgi" failed …
Run Code Online (Sandbox Code Playgroud)

python linux flask uwsgi

25
推荐指数
7
解决办法
2万
查看次数

如何找到一张收藏卡的最优惠价格?

或者旅行推销员扮演魔术!

我认为这是一个相当有趣的算法挑战.好奇,如果有人有任何好的解决方案的建议,或者它已经以已知的方式解决.

TCGPlayer.com为各种游戏销售收藏卡,包括Magic the Gathering.它们实际上是来自多个供应商(50+)的转售商,而不仅仅是从他们的库存中销售卡片.每个供应商都有不同的卡片库存每张卡不同价格.每个供应商也收取统一运费(通常).鉴于所有这些,如何找到一副牌的最佳价格(比如说40到100张牌)?

只是找到每张卡的最优价格是行不通的,因为如果您从10个不同的供应商订购10张卡,那么您支付10次运费,但如果您从一个供应商订购所有10个卡,则只支付一次运费.

另一天晚上,我写了一个简单的HTML Scraper(使用HTML Agility Pack),它可以获取每张卡的所有不同价格,然后找到所有带有卡中所有卡的供应商,总计来自每个供应商的卡的价格和按价格排序.这真的很容易.总价格最终接近所有卡的总中位数价格.

我注意到一些个人卡最终远高于中位数价格.这引发了在多个供应商之间拆分订单的问题,但只有通过将订单拆分以支付额外运费(每个添加的供应商增加另一个运费)才能节省足够的成本.

从逻辑上看,似乎最好的价格可能只涉及一些不同的供应商,但如果这些卡足够昂贵(有些是),那么理论上从不同的供应商订购每张卡仍然可以节省足够的成本以证明所有额外的运费.

如果你打算解决这个问题,你会怎么做?纯粹的蛮力计算卡/供应商组合的每种可能组合?在我的生命中更有可能完成的过程似乎涉及在固定次数的迭代中的一系列有条理的估计.我有几个想法,但我很好奇其他人的建议.

我正在寻找比实际代码更多的算法.我目前正在使用.NET,如果这有任何区别.

杰斯,心灵雕塑家

algorithm combinatorics

20
推荐指数
1
解决办法
957
查看次数

如何将终端向后滚动到最后一个命令的位置?

我有一个有很多输出的程序.一旦完成,我经常想回滚到运行的开始,以便我可以看到那里的一些东西.由于输出很长,我看到自己无休止地使用PageUp滚动并尝试将右侧的滚动条拖动到可能已经开始的位置.过了一段时间,这开始变得非常无聊,所以我想知道:

有没有办法让终端滚动回到最后一个命令的部分?

bash terminal command-line scroll

14
推荐指数
5
解决办法
4005
查看次数

用于多线程应用程序的无头浏览器

我正在为.NET多线程应用程序寻找无头浏览器.它必须具有下一个功能:

  • 没有任何服务器安装工作.我需要简单的库来分发我的应用程序.
  • Ajax/HTML 5支持.能够处理页面元素:通过内部/外部(SGMLReader)XML查找和读取属性,或使用API​​单击按钮,填写表单等.
  • 正确的cookie容器(正确使用多个cookie响应并在所有会话期间存储cookie)
  • 可自定义的浏览器行(甚至选择Chrome/Firefox就足够了)
  • 多线程.所以没有静态cookie容器或smth.其他.我需要能够在2-100000不同的用户下登录和使用同一个站点.
  • 快速工作
  • 使用不安全的SSL使用https.

我找到了这个解决方案

但不知道什么是最好的.如果您建议我最好的解决方案并给出一些使用它的.NET示例,将会很高兴.

我读了这个,这个,以及其他许多答案,我还没有找到答案.

.net browser automation headless web-scraping

9
推荐指数
0
解决办法
680
查看次数

可以使用Html Agility Pack来解析HTML片段吗?

我需要LINKMETA从ASP.NET页面,用户控件和母版页元素,抓住他们的内容,然后写回更新的值在公用事业我工作的这些文件.

我可以尝试使用正则表达式来获取这些元素,但这种方法存在一些问题:

  • 我希望许多输入文件包含损坏的HTML(缺失/无序元素等)
  • SCRIPT 包含看起来像有效元素的注释和/或VBScript/JavaScript的元素等.
  • 我需要能够对特殊情况下IE有条件的意见,并METALINK元素中的IE条件注释
  • 更不用说HTML如何不是常规语言

我在.NET中对HTML解析器进行了一些研究,许多SO帖子和博客都推荐了HTML Agility Pack.我以前从未使用它,我不知道它是否可以解析破碎的HTML和HTML片段.(例如,假设一个用户控件只包含一个包含HEAD一些内容的元素 - 没有HTMLBODY.)我知道我可以阅读文档,但如果有人可以提供建议,它会节省很多时间.(大多数SO帖子都涉及解析完整的HTML页面.)

.net html c# parsing html-agility-pack

7
推荐指数
2
解决办法
2811
查看次数

Amazon SES通知(SNS)无效

我仍然在Amazons SES沙箱中尝试设置一个反弹电子邮件处理程序.

我正在使用邮箱模拟器来测试退回/投诉电子邮件.

我创建了一个SNS主题(我已订阅接收来自此主题的通知): 在此输入图像描述

我已选择此主题接收退回电子邮件通知,然后我已禁用电子邮件通知:

在此输入图像描述

但是,当我从SES发送电子邮件到bounce@simulator.amazonses.com时,我仍然收到一封退回电子邮件,并且SNS主题中没有更新.

amazon-web-services amazon-sns amazon-ses

7
推荐指数
2
解决办法
3048
查看次数

使用 IndexedDB 过滤和排序

我正在寻找一些关于如何使用不同的键过滤并同时从 IndexedDB 中获取排序结果的建议。

条件是:

  1. IndexedDB中有2个key,一个用于过滤,一个用于排序
  2. 查询时,过滤键值是已知的,但不知道界定排序键可能值的值
  3. 排序键值可能包含随机数字和字母

我的解决方案包括两件事:

  • 具有两个键的复合索引:过滤键和排序键。在我的示例中,我按名称过滤并按id排序:

    objectStore.createIndex('nameId', ['name','id'], { unique: true });

  • 在查询中,我使用带有下限和上限的索引。由于附加了“0”,这不是一个优雅的解决方案:

    objectStore.index('nameId').openCursor(window.IDBKeyRange.bound(['John'], ['John' + '0'], true, false));

这按预期工作,在我的示例中返回:

 1. {"name":"John","id":13}
 2. {"name":"John","id":75}
 3. {"name":"John","id":77}
 4. {"name":"John","id":78}
 5. {"name":"John","id":88}
 6. {"name":"John","id":98}
 7. {"name":"John","id":99}
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的解决方案来实现相同的结果?

完整示例:

http://codepen.io/ncortines/pen/pjvgJB?editors=001

 1. {"name":"John","id":13}
 2. {"name":"John","id":75}
 3. {"name":"John","id":77}
 4. {"name":"John","id":78}
 5. {"name":"John","id":88}
 6. {"name":"John","id":98}
 7. {"name":"John","id":99}
Run Code Online (Sandbox Code Playgroud)

javascript indexeddb

6
推荐指数
0
解决办法
4358
查看次数