问题标签 [web-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 投票
3 回答
10612 浏览

r - 如何使用 R(Rcurl/XML 包?!)来抓取这个网页?

我有一个(有些复杂的)网络抓取挑战,我希望完成并希望找到一些方向(到你想要分享的任何级别):

我想浏览此链接中的所有“物种页面”:

http://gtrnadb.ucsc.edu/

所以对于他们每个人,我都会去:

  1. 物种页面链接(例如: http: //gtrnadb.ucsc.edu/Aero_pern/
  2. 然后到“二级结构”页面链接(例如: http: //gtrnadb.ucsc.edu/Aero_pern/Aero_pern-structs.html

在该链接中,我希望删除页面中的数据,以便我将有一个包含此数据的长列表(例如):

每行都有自己的列表(在每个动物列表中的每个“trna”列表中)

我记得遇到过可以执行此类任务的包 Rcurl 和 XML(在 R 中)。但我不知道如何使用它们。所以我想要的是: 1. 关于如何构建这样的代码的一些建议。2. 并推荐如何学习执行此类任务所需的知识。

谢谢你的帮助,

塔尔

0 投票
1 回答
1340 浏览

java - 在java中使用多个IP进行抓取

好吧,基本上我有一个抓取应用程序。它每分钟刮掉大约 n 个项目。目前我只有一个IP。

我正在抓取的网站允许我每个 IP 有 3 个连接。

我正在考虑获得另一个IP。

所以我将能够获得 6 个连接。

从理论上讲,我应该能够在 40 秒内或多或少地获得 n 个项目。

目前我正在使用 java (commons-httpcore) 来完成工作。

我不确定这是java问题还是操作系统问题。

我的机器有 IP 1 和 IP 2 我如何连接到,比如说,www.microsoft.com,使用 IP 1 和使用 IP2?我如何指定,我想使用哪个 ip 进行连接?

0 投票
2 回答
10750 浏览

javascript - 如何使用scrapy中的CrawlSpider单击带有javascript onclick的链接?

我希望 scrapy 抓取进入下一个链接的页面,如下所示:

scrapy 能够解释其中的 javascript 代码吗?

通过livehttpheaders扩展,我发现单击 Next 会生成一个 POST,其中包含一个非常大的“垃圾”,如下所示:

我正在尝试在CrawlSpider该类上构建我的蜘蛛,但我无法真正弄清楚如何对其进行编码,BaseSpider我使用该parse()方法来处理第一个 URL,这恰好是一个登录表单,我在其中进行了 POST:

然后我定义了 submit_next() 来告诉下一步该做什么。我不知道如何告诉 CrawlSpider 在第一个 URL 上使用哪种方法?

我爬的所有请求,除了第一个,都是 POST 请求。他们交替使用两种类型的请求:粘贴一些数据,然后单击“下一步”转到下一页。

0 投票
2 回答
3552 浏览

c# - HTML 敏捷包屏幕抓取 XPATH 不返回数据

我正在尝试为 Digikey 编写一个屏幕刮板,这将使我们公司能够在零件停产时准确跟踪定价、零件可用性和产品更换。我在 Chrome Devtools 中看到的 XPATH 以及在 Firefox 上看到的 Firebug 与我的 C# 程序看到的似乎存在差异。

我目前正在抓取的页面是http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-12602-1-ND

我目前使用的代码非常快速和肮脏......

虽然我使用的路径似乎是“正确的”,但当我查看列表“m_unparsedProductInfoNodes”时,我一直得到 NULL

知道这里发生了什么吗?我还要补充一点,如果我在 baseNode 上执行“SelectNodes”,它只会返回一个 div,其中唯一重要的子节点是“cs=####”,这似乎因浏览器用户代理而异。如果我无论如何都尝试使用它(将 /cs=0 放在无法识别的浏览器的路径中),它会坚持认为我的表达式不会评估为节点集,但留下它们仍然会留下所有数据过去的问题div[2] 返回为 NULL。

0 投票
1 回答
322 浏览

web-scraping - 刮谷歌代码搜索

问:关于从 Google 代码搜索结果中自动提取所有项目文件的编程工具/脚本的建议?注意:该问题专门针对代码搜索: http ://www.google.com/codesearch 而不是已经具有存储库访问权限的“谷歌代码”。

动机:一个开源项目的官网早就没了,没有任何联系的线索追上去重振它。项目文件仍然可用,但仅在谷歌代码搜索结果中(目前)。不幸的是有太多的文件可以手动剪切和粘贴它们。

欢迎所有想法,谢谢!

编辑:迄今为止找到的最近参考:groups.google.com/group/google-code-search/browse_thread/thread/f643b42934ea75c9/974f99c5cd907e8e#974f99c5cd907e8e

0 投票
2 回答
621 浏览

jquery - 那里有 jQuery webscraper 吗?

我正在尝试使用 jQuery 和 Adob​​e AIR 从外部站点提取一些信息。现在我正在使用隐藏div和 jQuery 的加载函数来加载外部站点的片段,一旦加载了信息,我就会使用选择器解析一些信息。这很好,但它有点脏,我需要执行几次(不想需要很多隐藏的 div)。

只是想知道是否有人知道用 jQuery 编写的好的 webscraper 或者我想念的另一种方法

0 投票
6 回答
4873 浏览

php - 如何知道被抓取的网站是否发生了变化?

我正在使用 PHP 来抓取网站并收集一些数据。这一切都在不使用正则表达式的情况下完成。我正在使用 php 的 explode() 方法来查找特定的 HTML 标记。

如果网站的结构发生变化(CSS、HTML),那么爬虫可能会收集到错误的数据。所以问题是——我怎么知道 HTML 结构是否发生了变化?如何在将任何数据存储到我的数据库之前识别这一点,以避免存储错误的数据。

0 投票
2 回答
724 浏览

javascript - 通过 Google 日历抓取 Google 任务

由于 gmail 和任务 api 并非随处可用(例如:一些公司阻止 gmail 但不阻止日历),有没有办法通过日历网络界面废弃 google 任务?

我做了一个像下面这样的用户脚本,但我觉得它太脆弱了:

0 投票
1 回答
199 浏览

php - 如何知道 iframe 内容是否为空?

我需要知道此页面是否返回某些内容,因为此页面在 ASP 中有登录名,而我的服务器是 PHP。

0 投票
2 回答
26248 浏览

python - 使用 urllib 和 BeautifulSoup 通过 Python 从 Web 检索信息

我可以使用 urllib 获取 html 页面,并使用 BeautifulSoup 解析 html 页面,看起来我必须生成要从 BeautifulSoup 读取的文件。

有没有办法在不从 urllib 生成文件的情况下调用 BeautifulSoup?