问题标签 [web-crawler]
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.
python - 有人知道我可以使用的基于 Python 的优秀网络爬虫吗?
我有点想自己写,但我现在真的没有足够的时间。我已经看过开源爬虫的维基百科列表,但我更喜欢用 Python 编写的东西。我意识到我可能只使用 Wikipedia 页面上的一种工具并将其包装在 Python 中。我最终可能会这样做——如果有人对这些工具有任何建议,我愿意听取他们的意见。我通过它的网络界面使用了 Heritrix,我发现它非常麻烦。我绝对不会在即将到来的项目中使用浏览器 API。
提前致谢。另外,这是我的第一个 SO 问题!
python - 在 Python 中进行 Web 爬网的最佳预建库是什么
我需要在本地抓取和存储以供将来分析有限网站列表的内容。我基本上想在所有页面中啜饮并按照所有内部链接获取整个公开网站。
是否有现有的免费图书馆可以让我到达那里?我见过奇尔卡特,但它是收费的。我只是在这里寻找基线功能。想法?建议?
c# - Asp.net Request.Browser.Crawler - 动态爬虫列表?
我了解了为什么 Request.Browser.Crawler 在 C# 中总是 False ( http://www.digcode.com/default.aspx?page=ed51cde3-d979-4daf-afae-fa6192562ea9&article=bc3a7a4f-f53e-4f88-8e9c-c9337f6c05a0 ) .
有没有人使用某种方法来动态更新爬虫的列表,所以 Request.Browser.Crawler 真的有用吗?
c# - 创建一个简单的“蜘蛛”
我研究了蜘蛛,并认为它对于我正在尝试制作的一个相当简单的应用程序来说有点太复杂了。网页上的某些数据无法在源中查看,因为它只是由浏览器显示。
如果我想从要在 WebBrowser 控件中显示的特定网页中获取值,是否有任何方法可以从该浏览器的内容中读取值?
如果没有,是否有人对他们如何解决这个问题有任何建议?
web - 如果搜索引擎蜘蛛正在攻击我的网站,我该怎么办?
我运行了一个小型网络服务器,最近它被搜索引擎蜘蛛所困扰。冷却它的正确方法是什么?我应该定期向它发送 5xx 响应吗?我应该使用 robots.txt 设置吗?或者是其他东西?
seo - robots.txt:除了少数几个,禁止所有,为什么不呢?
我一直在考虑禁止除 Ask、Google、Microsoft 和 Yahoo! 之外的所有爬虫。从我的网站。
这背后的原因是我从未见过任何其他网络爬虫产生任何流量。
我的问题是:
- 有什么理由不这样做吗?
- 有人做过吗?
- 你注意到任何负面影响了吗?
更新:
到目前为止,我使用黑名单方法:如果我不喜欢爬虫,我将它们添加到禁止列表中。
我不喜欢列入黑名单,因为这是一个永无止境的故事:那里总是有更多的爬虫。
我不太担心真正丑陋的行为不端的爬虫,它们会被自动检测并阻止。(无论如何,他们通常不要求 robots.txt :)
然而,许多爬虫实际上并没有以任何方式行为不端,它们似乎并没有为我/我的客户创造任何价值。
例如,有几个爬虫为网站提供动力,声称他们将成为下一个谷歌;只有更好。我从未见过来自他们的任何流量,而且我对他们变得比上述四个搜索引擎中的任何一个都好持怀疑态度。
更新 2:
一段时间以来,我一直在分析几个站点的流量,似乎对于合理的小型站点,每天有 100 个唯一的人类访问者(=我无法识别为非人类的访问者)。大约 52% 的生成流量来自自动化流程。
60% 的自动访问者没有阅读 robots.txt,40%(占总流量的 21%)确实请求 robots.txt。(这包括 Ask、Google、Microsoft 和 Yahoo!)
所以我的想法是,如果我阻止所有似乎对我没有任何价值的表现良好的爬虫,我可以将带宽使用和服务器负载减少大约 12% - 17%。
persistence - 为基于 Greasemonkey 的爬虫存储数据的最佳方式?
我想用 Greasemonkey 抓取一个网站,想知道是否有比使用 GM_setValue 更好的方法来临时存储值。
我想做的是在社交网络中抓取我的联系人并从他们的个人资料页面中提取 Twitter URL。
我目前的计划是在它自己的选项卡中打开每个配置文件,使其看起来更像一个普通的浏览者(即浏览器将加载 css、scrits 和图像)。然后用 GM_setValue 存储 Twitter URL。抓取完所有个人资料页面后,使用存储的值创建一个页面。
不过,我对存储选项不太满意。也许有更好的方法?
我已经考虑将用户配置文件插入当前页面,以便我可以使用相同的脚本实例处理它们,但我不确定 XMLHttpRequest 看起来是否与普通用户发起的请求没有区别。
web-crawler - 如何最好地开发网络爬虫
我习惯于创建一些爬虫来编译信息,当我来到一个网站时,我需要这些信息,我为该站点启动了一个新的爬虫,大部分时间使用 shell 脚本,有时使用 PHP。
我的做法是for
对页面列表进行简单的迭代,下载wget
它和sed
,或其他实用程序来清理页面并获取我需要的特定信息。tr
awk
所有过程都需要一些时间,具体取决于站点以及下载所有页面的更多时间。而且我经常进入一个让一切变得复杂的 AJAX 网站
我想知道是否有更好的方法来做到这一点,更快的方法,甚至是一些应用程序或语言来帮助这样的工作。
caching - 如何强制从搜索引擎索引中删除页面?
情况:Google 已将论坛中的页面编入索引。该线程现已删除。我如何/是否可以让谷歌和其他搜索引擎删除缓存的副本?我怀疑他们是否会反对,因为链接页面不再存在,并且保持索引更新和有效应该符合他们的最大利益。
这是可能的还是我必须等待数月才能更新索引?或者页面现在会永远留在那里吗?
我不是相应网站的所有者,因此我无法更改 robots.txt 等示例。我想以“第三方”的身份强制更新。
我还注意到我两天前创建的该资源上的一个新页面已经在缓存中。鉴于此,我可以估计删除此域上的无效页面需要多长时间?
编辑:所以我做了测试。谷歌花了不到 2 个月的时间来删除该页面。很长一段时间...
html - 您如何存档整个网站以供离线查看?
实际上,我们已经多次为客户烧录我们的 asp.net 网站的静态/存档副本。到目前为止,我们一直在使用WebZip,但我们遇到了无数的崩溃问题,下载的页面没有正确重新链接等等。
我们基本上需要一个应用程序来抓取和下载我们的 asp.net 网站上所有内容(页面、图像、文档、css 等)的静态副本,然后处理下载的页面,以便可以在没有互联网连接的情况下在本地浏览它们(摆脱链接中的绝对网址等)。白痴证明越多越好。这似乎是一个非常常见且(相对)简单的过程,但我尝试了其他一些应用程序并且真的不为所动
有没有人推荐的存档软件?有没有人愿意分享一个非常简单的过程?