问题标签 [screen-scraping]

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 投票
2 回答
1861 浏览

asp.net - 如何在 ASP.NET 中模拟网站登录,然后从页面中抓取一些数据

是否有人对在 ASP.NET 代码中执行以下操作有任何建议:

1) 使用用户名和密码登录受密码保护的站点(目标站点不一定是 ASP.NET)

2) 导航到特定页面和/或执行搜索

3)从页面中提取特定数据(这是简单的部分)

尽管使用 API 会很好,但源站点不提供此功能。

登录非常简单(用户名、密码、提交按钮)——没有验证码等......

0 投票
10 回答
16004 浏览

perl - 如何使用 Perl 筛选抓取?

我需要显示一些存储在网站中的值,因为我需要抓取网站并从表中获取内容。有任何想法吗?

0 投票
4 回答
877 浏览

java - 为Java应用程序筛选格式不正确的XHTML页面的最佳方法是什么

我希望能够从网页中抓取内容,尤其是其中的标签和内容。我已经尝试过 XQuery 和 XPath,但它们似乎不适用于格式错误的 XHTML,而 REGEX 只是一种痛苦。

有没有更好的解决方案。理想情况下,我希望能够请求所有链接并返回一组 URL,或者请求链接的文本并返回包含链接文本的字符串数组,或者请求所有粗体文本等等

0 投票
5 回答
1104 浏览

php - 截取你一生中见过的最丑陋的 HTML

我正在使用 PHP 和 libtidy 尝试筛选可能是历史上最可怕和格式错误的 HTML 表格使用。该站点关闭了几个表、tr、td、字体或粗体标签,并始终在表中嵌套许多不同的表层。

示例片段:

神奇的是,所有浏览器似乎都可以很好地呈现这个。PHPTidy 设法很好地理解了这一切,但是表嵌套得太深而且几乎是随机的,以至于使用 DOM XPath 很难遍历它。

有人对其他方法有什么建议吗?

事后分析:在喝了太多比利时小麦啤酒并弄脏了我的代码之后,我通过 strip_tags() 删除了除 table、tr 和 td 之外的所有标签,然后通过 libtidy 运行它,得到了很好的结果。现在它的格式很漂亮,很容易遍历。似乎在将其发送到解析器之前只需要稍微按摩一下。

0 投票
1 回答
3073 浏览

c# - 如何获取 IE 凭据以在我的代码中使用?

我目前正在使用SpicIE开发一个 IE 插件。

这个插件执行一些类似于 MSDN 上发布的示例的网络抓取:

但是,当我运行此代码时,我收到以下错误消息:

远程服务器返回错误:(407) 需要代理身份验证。

我目前正在代理服务器后面工作,并使用NetworkCredential类手动提供我的网络凭据

但我仍然收到同样的错误。

即使我的问题解决了,我也知道该插件的某些用户将在代理服务器后面。

我想知道如何获取 IE 凭据并在我的代码中使用它来将其分配给 request.Credentials

也许是这样的:

0 投票
3 回答
801 浏览

c# - 我如何屏幕抓取网络邮件页面?

我正在做一个项目,我需要登录一个网站并抓取网页内容。我尝试了以下代码:

这会刮掉邮件的登录页面。但我需要抓取我的收件箱详细信息。请指导我如何进一步进行,在此先感谢。

0 投票
13 回答
15381 浏览

programming-languages - 什么是最好的屏幕抓取语言?

嗨,我想创建一个桌面应用程序 (c# prob) 来抓取或操作 3rd 方网页上的表单。基本上我在桌面应用程序的表单中输入我的数据,它会转到第 3 方网站,然后使用脚本或后台的任何内容,在那里输入我的数据(包括我的登录名)并为我单击提交按钮。我只是想避免加载浏览器!

在这方面没有做太多(任何!)工作我想知道像 perl、python、ruby 等脚本语言是否允许我这样做?或者干脆使用 c# 和 .net 完成所有的抓取?哪一个是最好的IYO?

我在想脚本可能需要从不同平台上的应用程序中挂钩到相同的脚本(例如 symbian 移动设备,我无法像桌面版本那样在 c# 中开发它)。

它不是网络应用程序,否则我不妨使用原始网站。我意识到这一切听起来毫无意义,但这种特定形式的自动化对我来说将是一个真正的节省时间。

0 投票
2 回答
3675 浏览

php - 卷曲功能从选择框中选择选项并自动提交

我是一个新手,每天都尝试不同的事情,当我遇到困难时总是来这里。

我想使用 curl 和 php 编写一个脚本,该脚本转到此链接:http ://tools.cisco.com/WWChannels/LOCATR/openBasicSearch.do然后遍历每个国家/地区的每个页面,捕获每个合作伙伴的列表国家并将其保存到数据库。

我不知道脚本将如何从选择框中逐个选择国家并将页面重定向到国家页面......这是要做的第一件事,一旦我们在页面上,模式匹配就会在其中存储名称和地址我可以管理的数据库。

问题是在我们选择任何国家之前 url 是:: http://tools.cisco.com/WWChannels/LOCATR/BasicSearch.do 在我们选择国家之后说'india' url 是: http://tools.cisco.com/ WWChannels/LOCATR/performBasicSearch.do,没有提到任何选择的国家。

我的想法是遍历 HTML 页面,并在数组中输入所有国家/地区,然后创建一个递归函数来调用具有特定国家/地区的页面,但为此我们需要在递归函数中为每个国家/地区提供不同的 URL,对吗?

请帮忙

0 投票
1 回答
3458 浏览

asp.net - 从 asp.net AJAX 应用程序获取数据的 Python

使用 Python,我正在尝试读取http://utahcritseries.com/RawResults.aspx上的值。我可以很好地阅读该页面,但是很难更改年份组合框的值以查看其他年份的数据。除了默认的 2002 年之外,我如何读取其他年份的数据?

一旦年份组合框发生更改,该页面似乎正在执行 HTTP Post。控件的名称是 ct100$ContentPlaceHolder1$ddlSeries。我尝试使用 urllib.urlencode(postdata) 为这个控件设置一个值,但我一定做错了——页面上的数据没有改变。这可以在 Python 中完成吗?

如果可能的话,我宁愿不使用 Selenium。

我一直在使用这样的代码(来自stackoverflow用户dbr)

但似乎拉高了相同的 2002 年数据。我尝试使用 firebug 来检查标头,我看到很多无关的和随机的数据被来回发送 - 我是否还需要将这些值发布回服务器?

0 投票
2 回答
528 浏览

api - 是否可以在不抓取的情况下从 Myspace 页面获取即将举行的活动/节目信息?

我想从 myspace 艺术家那里获得演出信息。我可以做到这一点的一种方法是让艺术家输入他们的 myspace URL,然后我可以尝试抓取页面。

我真正想做的是向艺术家询问他们的 myspace 凭据并使用 myspace api 获取他们的演出数据。我在 myspace 开发者网站上找不到如何执行此操作。有人知道吗?

作为一个附带问题,如果我决定走页面抓取路线,那合法吗?我感觉很多人都是这样做的。