草庐IT

ruby - 如何用 Ruby 编写网络抓取工具?

我想抓取一个没有API的热门网站(例如Quora)并获取一些特定信息并将其转储到一个文件中-比如说csv、.txt或.html格式很好:)例如仅返回Quora用户的所有“简历”列表,这些用户在其公开信息中列出了职业“UX设计师”。我如何在Ruby中做到这一点?我对Ruby&Rails的工作原理有一定程度的了解。我刚刚完成了一个Rails应用程序——主要是我自己写的。但无论怎么想,我都不是大师。我了解正则表达式等 最佳答案 你最好的选择是使用Mechanize.它可以跟随链接、提交表格,以及您需要的任何东西,Web客户端。顺便说一句,

javascript - 你怎么能抓取dom中的元素并在没有id的情况下应用不同的css?

我在这里有点困惑。我正在做一个动态元素,我想应用不同的css具有相同类但没有id的div。我如何将不同的css应用到具有相同类的第一个div,然后不同的css到同一类的第二个div等等......假设我将fullwidthContainer类应用于3divs对于第一个div,我想要宽度1000px,第二个我想要800px等等。我不能在这里给出id或其他类,因为它是动态生成的。请帮忙。谢谢。好的,我是用javascript做的functionemphatic(){vartotalContainers=document.getElementsByClassName('fullwidthCo

javascript - 抓取数据、 headless 浏览器和 Python

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion所以我是一名CS学生,正在尝试学习网络抓取以及随之而来的所有该做和不该做的事情。在弄乱了iMacros和其他一些数据抓取“工具”之后,我转向了Python,这是一种我当时并不熟悉的语言。我了解了BeautifulSoup和urllib2,并通过stackoverflow和其他一些论坛学习了我的方法。现在,利用我目前获得的知识,我可以抓取大多数静态网页。然而,我们都知道静态页面的时代已经结束,现在即使是普通

javascript - Web 抓取具有动态 javascript 内容的网站

所以我使用python和beautifulsoup4(我没有绑定(bind))来抓取网站。问题是当我使用urlib获取页面的html时,它不是整个页面,因为其中一些是通过javascript生成的。有什么办法可以解决这个问题吗? 最佳答案 基本上有两个主要选项可以继续:使用浏览器开发工具,查看哪些ajax请求将加载页面并在脚本中模拟它们,您可能需要使用json将响应json字符串加载到python数据结构中的模块使用selenium等工具打开一个真正的浏览器。浏览器也可以是“headless”的,参见HeadlessSelenium

javascript - Jquery 获取每个 div 的子子 div 并将信息抓取到数组中

我有一些看起来像这样的html我想将每个sub_maindiv信息提取到javascript中的数组中。到目前为止,我有这个作为我的jquery代码$('#main').find('.sub_main').each(function(){alert('hi');});警报只是一个测试,它应该显示“hi”两次。但这是行不通的。我也不清楚如何将两个输入存储在javascript数组中。任何帮助都会很棒!谢谢, 最佳答案 vararray=$('#maininput').map(function(){return$(this).val()

javascript - 如何抓取无限滚动页面?

我正在尝试构建可以从具有无限滚动的页面中抓取内容的东西。但是,我无法从第一个“中断”下方获取内容。我该怎么做? 最佳答案 无限滚动几乎总是通过使用AJAX或相关技术在JavaScript中完成的。因此,您的网络爬虫获取HTML并解析它是不够的;它必须下载并执行javascript,或者至少扫描它以查找AJAX调用。执行完整的javascript可能是最好的(即最能保证工作),但也可能是最难做到的。扫描AJAX请求的javascript和/或寻找执行AJAX调用的函数然后进行DOM操作可能是最简单的(相对于完整的JS执行)

javascript - 如何检测由新的抓取标准发起的请求?一般来说,我应该如何检测 AJAX 请求?

在服务器上,知道传入请求是AJAX是很有用的。大多数js库使用XMLHttpRequest,因此提供HTTP_X_REQUESTED_WITH:XMLHttpRequest,但Chrome的实现和Github'spolyfill都没有提供新的fetch使用类似的header。那么如何检测请求是AJAX请求呢?为什么标识其发起者的请求没有通过fetch和XMLHttpRequest标准强制执行?是否应该使用其他东西来做出决策(例如,客户提供他们期望响应的内容类型)? 最佳答案 查看thisissue在Github'spolyfill上

javascript - 在 R 中抓取 javascript 网站

我想从这个url中抓取比赛时间和日期:http://www.scoreboard.com/game/rosol-l-goffin-d-2014/8drhX07d/#game-summary通过使用chrome开发工具,我可以看到这似乎是使用以下代码生成的:01:20AM,October29,2014但这不在源html中。我认为这是因为它的java(如果我错了请纠正我)。我如何使用R抓取这些信息? 最佳答案 因此,RSelenium不再是唯一的答案。如果您可以安装PhantomJS二进制文件(从这里获取phantomjs二进制文件:h

javascript - 如何使用 R 从国家文件馆 (archives.gov) 中抓取目录系列中的所有文件

我正在寻找一种编程方式来使用R抓取archive.gov上数据文件系列的所有可用文件。archives.gov似乎使用javascript。我的目标是捕获每个可用文件的URL以及文件名。家庭抵押贷款披露法案数据文件系列有153entries在浏览器中,我可以单击“导出”按钮并获得具有以下结构的csv文件:first_exported_record然后在这153个条目的每一个后面,都有文件单元页面,其中包含多个可供下载的文件。例如,第一个导出的记录指向:https://catalog.archives.gov/id/18491490但是这两个页面似乎都是javascript,所以我不确定

javascript - 在 JavaScript 更改值之前和之后使用 Nokogiri 和 Ruby 进行抓取

我有一个程序可以从https://web.apps.markit.com/WMXAXLP?YYY2220_zJkhPN/sWPxwhzYw8K4DcqW07HfIQykbYMaXf8fTzWT6WKnuivTcM0W584u1QRwj中抓取值我当前的代码是:doc=Nokogiri::HTML(open(source_url))putsdoc.css('span.indexDate').textdate=doc.css('span.indexDate').textdate=Date.parse(date)putsdatevalues=doc.css('table#CdsIndexTab