标签: web-scraping

使用PhantomJS和node.js保存并呈现网页

我正在寻找一个请求网页,等待JavaScript呈现(JavaScript修改DOM),然后抓取页面的HTML的示例.

这应该是一个简单的例子,有一个明显的PhantomJS用例.我找不到一个体面的例子,文档似乎都是关于命令行使用的.

html javascript node.js web-scraping phantomjs

59
推荐指数
2
解决办法
6万
查看次数

如何在Python脚本中运行Scrapy

我是Scrapy的新手,我正在寻找一种从Python脚本运行它的方法.我找到了两个解释这个的来源:

http://tryolabs.com/Blog/2011/09/27/calling-scrapy-python-script/

http://snipplr.com/view/67006/using-scrapy-from-a-script/

我无法弄清楚我应该在哪里放置我的蜘蛛代码以及如何从主函数中调用它.请帮忙.这是示例代码:

# This snippet can be used to run scrapy spiders independent of scrapyd or the scrapy command line tool and use it from a script. 
# 
# The multiprocessing library is used in order to work around a bug in Twisted, in which you cannot restart an already running reactor or in this case a scrapy instance.
# 
# [Here](http://groups.google.com/group/scrapy-users/browse_thread/thread/f332fc5b749d401a) is the mailing-list discussion for this snippet. 

#!/usr/bin/python
import os
os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') #Must be at the …
Run Code Online (Sandbox Code Playgroud)

python web-crawler scrapy web-scraping

54
推荐指数
5
解决办法
5万
查看次数

Java HTML解析

我正在开发一个从网站上删除数据的应用程序,我想知道如何获取数据.具体来说,我需要包含在许多使用特定CSS类的div标签中的数据 - 目前(用于测试目的)我只是在检查

div class = "classname"
Run Code Online (Sandbox Code Playgroud)

在HTML的每一行 - 这是有效的,但我不禁觉得那里有更好的解决方案.

有没有什么好方法我可以给一个类一行HTML并有一些很好的方法,如:

boolean usesClass(String CSSClassname);
String getText();
String getLink();
Run Code Online (Sandbox Code Playgroud)

html java parsing web-scraping

52
推荐指数
7
解决办法
11万
查看次数

52
推荐指数
3
解决办法
6万
查看次数

如何"扫描"一个网站(或页面)的信息,并将其带入我的程序?

好吧,我正在试图弄清楚如何从网页中提取信息,并将其带入我的程序(用Java).

例如,如果我知道我想要信息的确切页面,为了简单起见,Best Buy项目页面,我如何从该页面获得我需要的相应信息?喜欢标题,价格,描述?

这个过程甚至会被称为什么?我不知道甚至开始研究这个.

编辑:好的,我正在为JSoup(由BalusC发布的那个)运行测试,但我一直收到这个错误:

Exception in thread "main" java.lang.NoSuchMethodError: java.util.LinkedList.peekFirst()Ljava/lang/Object;
at org.jsoup.parser.TokenQueue.consumeWord(TokenQueue.java:209)
at org.jsoup.parser.Parser.parseStartTag(Parser.java:117)
at org.jsoup.parser.Parser.parse(Parser.java:76)
at org.jsoup.parser.Parser.parse(Parser.java:51)
at org.jsoup.Jsoup.parse(Jsoup.java:28)
at org.jsoup.Jsoup.parse(Jsoup.java:56)
at test.main(test.java:12)
Run Code Online (Sandbox Code Playgroud)

我有Apache Commons

html java web-scraping jsoup

51
推荐指数
3
解决办法
9万
查看次数

使用Haskell进行网页搜索

使用Haskell抓取网站的库的当前状态是什么?

我正努力让自己在Haskell中完成更多快速的一次性任务,以帮助提高我对语言的舒适度.

在Python中,我倾向于使用优秀的PyQuery库.在Haskell中有类似简单易用的东西吗?我看过Tag Soup,虽然解析器本身看起来不错,但实际遍历页面并不像其他语言那样好看.

那里有更好的选择吗?

haskell html-parsing web-scraping

51
推荐指数
4
解决办法
1万
查看次数

通过机器学习从网页中提取信息

我想 Python中的网页提取特定类型的信息.让我们说邮政地址.它有数千种形式,但仍然可以辨认出来.由于存在大量表单,因此编写正则表达式甚至是语法之类的东西并使用解析器生成器来解析它可能非常困难.

所以我认为应该采用的方式是机器学习.如果我理解得很好,我应该能够制作一个数据样本,在那里我将指出应该是什么结果,然后我有一些东西可以从中学习如何自己识别结果.这就是我对机器学习的全部了解.也许我可以使用一些自然语言处理,但可能并不多,因为所有的图书馆都使用英语,我需要这个用于捷克语.

问题:

  1. 我可以通过机器学习轻松解决这个问题吗?这是一个好方法吗?
  2. 有没有简单的例子可以让我开始?我是机器学习菜鸟,我需要一些实用的东西; 更接近我的问题更好; 更简单更好.
  3. 有很多用于机器学习的Python库.哪一个最适合我的问题?
  4. 很多这样的libs都不是很容易使用的文档,因为它们来自科学环境.是否有任何好的资料来源(书籍,文章,快速入门)弥合差距,即专注于对机器学习完全不了解的新手?我打开的每个文档都以我不理解的术语开头,例如网络,分类,数据集等.

更新:

正如你们所提到的,我应该展示一些我想要脱离网络的数据,这里有一个例子.我对电影放映时间很感兴趣.它们看起来像这样(其中三个):

<div class="Datum" rel="d_0">27. ?ervna – st?eda, 20.00
</div><input class="Datum_cas" id="2012-06-27" readonly=""><a href="index.php?den=0" rel="0" class="Nazev">Zahájení letního kina 
</a><div style="display: block;" class="ajax_box d-0">
<span class="ajax_box Orig_nazev">zábava • hudba • film • letní bar
</span>
<span class="Tech_info">Sv?t podle Fagi
</span>
<span class="Popis">Facebooková  komiksová Fagi v podání …
Run Code Online (Sandbox Code Playgroud)

python extract machine-learning html-parsing web-scraping

50
推荐指数
4
解决办法
3万
查看次数

动态更改IP地址?

考虑一下这种情况,我想经常抓取网站,但是我的IP地址在某天/限制后被阻止了.

那么,如何动态更改我的IP地址或任何其他想法?

ip web-crawler dynamic-ip scrapy web-scraping

47
推荐指数
3
解决办法
3万
查看次数

如何向下滚动Phantomjs以加载动态内容

我试图从用户向下滚动到底部(无限滚动)动态生成内容的页面中抓取链接.我曾尝试用Phantomjs做不同的事情但不能收集第一页以外的链接.让我们说加载内容的底部元素具有类.has-more-items.它在滚动期间加载最终内容之前可用,然后在DOM中变为不可用(显示:无).以下是我试过的事情 -

  • 之后将viewportSize设置为较大的高度 var page = require('webpage').create();

page.viewportSize = {width:1600,height:10000,};

  • 使用page.scrollPosition = { top: 10000, left: 0 }内部,page.open但没有效果像 -
page.open('http://example.com/?q=houston', function(status) {
   if (status == "success") {
      page.scrollPosition = { top: 10000, left: 0 };  
   }
});
Run Code Online (Sandbox Code Playgroud)
  • 也试过把它放在page.evaluate功能内但是给出了

参考错误:找不到变量页面

  • 尝试使用jQuery和JS代码page.evaluate,page.open但没有用 -

$("html,body").animate({scrollTop:$(document).height()},10,function(){// console.log('check for execution');});

既然如此,也在里面document.ready.类似的JS代码 -

window.scrollBy(0,10000)
Run Code Online (Sandbox Code Playgroud)

既然如此,也在里面 window.onload

我现在真的被打了两天而且找不到方法.任何帮助或提示将不胜感激.

更新

我在https://groups.google.com/forum/?fromgroups=#!topic/phantomjs/8LrWRW8ZrA0找到了一段有用的代码

var hitRockBottom = false; while (!hitRockBottom) {
    // Scroll the page …
Run Code Online (Sandbox Code Playgroud)

javascript dom screen-scraping web-scraping phantomjs

46
推荐指数
1
解决办法
3万
查看次数

如何刮一个需要使用python和beautifulsoup登录的网站?

如果我想先刮一个需要用密码登录的网站,怎样才能开始使用beautifulsoup4库用python抓它?以下是我对不需要登录的网站所做的工作.

from bs4 import BeautifulSoup    
import urllib2 
url = urllib2.urlopen("http://www.python.org")    
content = url.read()    
soup = BeautifulSoup(content)
Run Code Online (Sandbox Code Playgroud)

如何更改代码以适应登录?假设我要抓的网站是一个需要登录的论坛.一个例子是http://forum.arduino.cc/index.php

python beautifulsoup web-scraping

46
推荐指数
5
解决办法
5万
查看次数