问题标签 [scrapysharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
895 浏览

c# - C#在jquery之后抓取正确的网页内容

我使用 HtmlAgilityPack 已经有一段时间了,但是我一直在使用的网络资源现在有一个(看起来像)浏览器通过的 jQuery 协议。我期望加载的是产品页面,但实际加载的(通过 WebBrowser 控件和 WebClient DownloadString 验证)是重定向,要求访问者选择顾问并与他们注册。

换句话说,使用 Chrome 的 Inspect >> Elements 工具,我得到:

但是 WebBrowser 和 HTMLAgilityPack 只能得到:

在深入研究头部的类定义后,我发现页面确实使用 jQuery 来处理正确的加载,并在访问者浏览页面时处理操作(滚动、调整大小、悬停在图像上、选择其他图像等)。这是来自jQuery的头部:

我尝试了 ScrapySharp,如下所述: C# .NET:抓取动态(JS)网站

但这最终消耗了所有可用内存并且从未产生任何东西。

还有这个: htmlagilitypack 和动态内容问题 如上所述加载了不正确的重定向。

如果需要,我可以提供更多我试图从中提取的源,包括完整的 jQuery。

0 投票
1 回答
259 浏览

c# - C# ScrapySharp 'System.Net.CookieException: ''Name'='HttpOnly, NID' 部分 cookie 无效。'

所以我的代码遇到了一个意想不到的问题。出于某种原因,我无法从我的 Google 搜索中下载和打印链接...非常感谢帮助,因为我真的不确定这里发生了什么...我也在使用 DotNET SDK

错误:

0 投票
1 回答
122 浏览

scrapysharp - 使用 ScrapySharp 和 HtmlAgilityPack 抓取表格

我正在尝试从特定网站上抓取经济日历。实际上,我尝试了很多次都没有成功,我不知道我错在哪里。你能帮我吗?

0 投票
0 回答
535 浏览

c# - 使用scrapy sharp登录

我使用 c# windows forms 和 scrapysharp library 创建了一个简单的 windows 应用程序。我已经毫无问题地解析了数据。但现在我需要从另一个需要登录的页面解析数据。问题是我不知道在使用这个库时如何在这个模拟浏览器中保存 cookie。

当我使用用户名和密码提交表单时,它不记得我的会话

0 投票
1 回答
54 浏览

c# - 模拟单元测试的 ScrapySharp 响应

我在我的干净架构解决方案中使用 ScrapySharp,我需要在我的单元测试中模拟 Scraping 服务响应,以便单元测试是自包含的,并且实际上不会触及任何外部服务器。

我已经研究过使用 Moq,但没有看到为我的代码返回一个新的 ScrapySharp WebPage 然后在单元测试期间使用的方法。

我的基础设施项目中有一个服务接口:

然后,我将拥有该服务的真实世界实现,该实现将被注入到使用该服务的类中。我的单元测试将使用在我的测试期间注入的服务的模拟实现。

有没有人尝试过这样的事情,或者如果我没有正确考虑这个问题,可以帮助我吗?

0 投票
2 回答
703 浏览

c# - 当它只有属性时如何在scrapysharp中找到表单,即没有名称或ID

我是scrapySharp以及网络抓取的新手。我正在尝试抓取一个安全且具有登录屏幕的站点。form 元素没有 name/id 属性,因此使我的生活更加复杂。我一直无法弄清楚如何使用下面的代码加载表单。非常感谢任何见解!

C#:

HTML:

0 投票
1 回答
248 浏览

c# - ScrapySharp 表单提交导致 System.AggregateException

我花了几个小时思考为什么这不起作用

我正在尝试使用 ScrapySharp 来抓取网站,现在只是尝试示例网站然后转移到我的实际网站。

每次我form.Submit()在我的程序中执行一次时,都会遇到 System.AggregateException(指定的演员表无效)

我的代码:

我的错误:

System.AggregateException:发生一个或多个错误。(指定的转换无效。)---> System.InvalidCastException:指定的转换无效。在 ScrapySharp.Network.ScrapingBrowser.CreateRequest (System.Uri url, ScrapySharp.Network.HttpVerb 动词) [0x0000b] in <0a639adc663f45108f057c429262c620>:0 在 ScrapySharp.Network.ScrapingBrowser.NavigateToPageAsync (System.Uri url, ScrapySharp.Network.HttpVerb 动词, System.String data, System.String contentType) [0x00066] in <0a639adc663f45108f057c429262c620>:0 --- 内部异常堆栈跟踪结束 --- 在 System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011 ] 在 /Users/builder/jenkins/workspace/build-package-osx-mono/2019-06/external/bockbuild/builds/mono-x64/external/corert/src/System.Private。1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-06/external/bockbuild/builds/mono-x64/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:496 at System.Threading.Tasks.Task1[TResult].get_Result () [0x00000] 在 /Users/builder/jenkins/workspace/build-package-osx-mono/2019-06/external/bockbuild/builds/mono-x64/external/corert/src/System .Private.CoreLib/src/System/Threading/Tasks/Future.cs:466 在 ScrapySharp.Network.ScrapingBrowser.NavigateToPage (System.Uri url,ScrapySharp.Network.HttpVerb 动词,System.String 数据,System.String contentType)[ 0x0000b] in <0a639adc663f45108f057c429262c620>:0 在 ScrapySharp.Html.Forms.PageWebForm.Submit () [0x00023] in <0a639adc663f45108f057c429262c620>:0 在 WebScraper.MainClass/x [0006] inargsUserClass.Main (0006[] arib/Projects/WebScraper/WebScraper/Program.cs:29

我厌倦了这个错误,非常感谢任何和所有的帮助..谢谢

0 投票
0 回答
48 浏览

c# - C# - ScrapySharp - 如何获取 from the <head>?</h1> <div id="body"><p>I want to get the title from a webpage through ScrapySharp. With CssSelect, I'm only getting the <code><body></code> tag.</p> <p>I</a> </h3> <div class="s-post-summary--content-excerpt"> </div> <div class="s-post-summary--meta"> <div class="s-post-summary--meta-tags tags js-tags t-cñ t-ûnet t-aspûnet-mvc t-aspûnet-mvc-4 t-actionfilterattribute"> <a href="/tags/c#" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">c#</a><a href="/tags/web-scraping" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">web-scraping</a><a href="/tags/scrapysharp" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">scrapysharp</a> </div> <div class="s-user-card s-user-card__minimal"> <div class="s-user-card--info"> <div class="s-user-card--link d-flex gs4"> </div> </div> <time class="s-user-card--time" style="margin-left:5px;"> <span title="2022-04-18 08:34:11Z" class="relativetime"> 2020-07-30T19:10:19.490</span></time> </div> </div> </div> </div><div id="question-summary-71909431" class="s-post-summary js-post-summary" data-post-id="71909431" data-post-type-id="1"> <div class="s-post-summary--stats js-post-summary-stats"> <div class="s-post-summary--stats-item s-post-summary--stats-item__emphasized" title="Score of 0"> <span class="s-post-summary--stats-item-number">0</span> <span class="s-post-summary--stats-item-unit">投票</span> </div> <div class="s-post-summary--stats-item " title="0 answers"> <span class="s-post-summary--stats-item-number">0</span> <span class="s-post-summary--stats-item-unit">回答</span> </div> <div class="s-post-summary--stats-item " title="68 views"> <span class="s-post-summary--stats-item-number">68</span> <span class="s-post-summary--stats-item-unit">浏览</span> </div> </div> <div class="s-post-summary--content"> <h3 class="s-post-summary--content-title"> <a href="/questions/63221925" class="s-link">c# - System.invalidoperationexception 序列不包含任何元素 Web Scraper</a> </h3> <div class="s-post-summary--content-excerpt"> <p>我正在尝试使用 ScrapySharp 创建一个 Web Scraper。我遇到了以下错误-</p> <blockquote> <p>System.invalidoperationexception 序列不包含任何元素</p> </blockquote> <p>代码 -</p> <p>刮板类:</p> <p>HTML 代码:</p> <p>我使用 Id 是因为页面具有相同类的不同 div。</p> </div> <div class="s-post-summary--meta"> <div class="s-post-summary--meta-tags tags js-tags t-cñ t-ûnet t-aspûnet-mvc t-aspûnet-mvc-4 t-actionfilterattribute"> <a href="/tags/c#" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">c#</a><a href="/tags/web-scraping" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">web-scraping</a><a href="/tags/scrapysharp" class="post-tag flex--item mt0 js-tagname-cñ" title="" rel="tag">scrapysharp</a> </div> <div class="s-user-card s-user-card__minimal"> <div class="s-user-card--info"> <div class="s-user-card--link d-flex gs4"> </div> </div> <time class="s-user-card--time" style="margin-left:5px;"> <span title="2022-04-18 08:34:11Z" class="relativetime"> 2020-08-02T23:23:18.407</span></time> </div> </div> </div> </div> </div> <br class="cbt"> <div class="s-pagination site1 themed pager float-left"> <a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=1" rel="" title="Go to page 2">1</a><a class="s-pagination--item js-pagination-item is-selected" href="/tags/scrapysharp?p=2" rel="" title="Go to page 2">2</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=3" rel="" title="Go to page 2">3</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=4" rel="" title="Go to page 2">4</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=5" rel="" title="Go to page 2">5</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=6" rel="" title="Go to page 2">6</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=7" rel="" title="Go to page 2">7</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=8" rel="" title="Go to page 2">8</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=9" rel="" title="Go to page 2">9</a><a class="s-pagination--item js-pagination-item " href="/tags/scrapysharp?p=10" rel="" title="Go to page 2">10</a></div> </div> <div id="sidebar" class="show-votes" role="complementary" aria-label="sidebar"> <div class="module js-gps-related-tags" id="related-tags"> <h4 id="h-related-tags">Reference</h4> <div data-name="javascript"> <a href="https://php.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">php</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">1429865</span> </span> </div> <div data-name="javascript"> <a href="https://c-cpp.com" class="post-tag no-tag-menu js-gps-track" target="_blank">c/c++</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">756500</span> </span> </div> <div data-name="javascript"> <a href="https://nginx.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">nginx</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">49975</span> </span> </div> <div data-name="javascript"> <a href="https://mongodb.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">mongodb</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">159057</span> </span> </div> <div data-name="javascript"> <a href="https://mybatis.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">mybatis</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">3233</span> </span> </div> <div data-name="javascript"> <a href="https://anaconda.org.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">anaconda</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">13410</span> </span> </div> <div data-name="javascript"> <a href="https://pycharm.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">pycharm</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">14671</span> </span> </div> <div data-name="javascript"> <a href="https://python.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">python</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">1902243</span> </span> </div> <div data-name="javascript"> <a href="https://vscode.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">vscode</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">56040</span> </span> </div> <div data-name="javascript"> <a href="https://dockerdocs.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">docker</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">110988</span> </span> </div> <div data-name="javascript"> <a href="https://github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">github</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">49000</span> </span> </div> <div data-name="javascript"> <a href="https://flask.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">flask</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">49129</span> </span> </div> <div data-name="javascript"> <a href="https://ffmpeg.github.net.cn" class="post-tag no-tag-menu js-gps-track" target="_blank">ffmpeg</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">24037</span> </span> </div> <div data-name="javascript"> <a href="https://jmeter.net" class="post-tag no-tag-menu js-gps-track" target="_blank">jmeter</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">16910</span> </span> </div> <div data-name="javascript"> <a href="https://matplotlib.net" class="post-tag no-tag-menu js-gps-track" target="_blank">matplotlib</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">63493</span> </span> </div> <div data-name="javascript"> <a href="https://getbootstrap.net" class="post-tag no-tag-menu js-gps-track" target="_blank">bootstrap</a> <span class="item-multiplier"><span class="item-multiplier-x">×</span> <span class="item-multiplier-count">54641</span> </span> </div> </div> </div> </div> </div> <footer id="footer" class="site-footer js-footer" role="contentinfo"> <div class="site-footer--container"> <div class="site-footer--logo"> <a href="https://stackoverflow.com"><svg aria-hidden="true" class="native svg-icon iconLogoGlyphMd" width="32" height="37" viewBox="0 0 32 37"><path d="M26 33v-9h4v13H0V24h4v9h22Z" fill="#BCBBBB"/><path d="m21.5 0-2.7 2 9.9 13.3 2.7-2L21.5 0ZM26 18.4 13.3 7.8l2.1-2.5 12.7 10.6-2.1 2.5ZM9.1 15.2l15 7 1.4-3-15-7-1.4 3Zm14 10.79.68-2.95-16.1-3.35L7 23l16.1 2.99ZM23 30H7v-3h16v3Z" fill="#F48024"/></svg></a> </div> <nav class="site-footer--nav"> <div class="site-footer--col"> <h5 class="-title"><a href="https://stackoverflow.org.cn" class="js-gps-track" data-gps-track="footer.click({ location: 3, link: 15})">Stack Overflow 中文网</a></h5> <p>遵从 CC BY-SA 知识共享许可协议。</p> </div> </nav> </div> </footer> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?709ff2ad9744e86b5b0eee677fc13ede"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-1MW5BV8G8E"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-1MW5BV8G8E'); </script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6117966252207595" crossorigin="anonymous"></script> </body> </html>