我正在寻找一个请求网页,等待JavaScript呈现(JavaScript修改DOM),然后抓取页面的HTML的示例.
这应该是一个简单的例子,有一个明显的PhantomJS用例.我找不到一个体面的例子,文档似乎都是关于命令行使用的.
我是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) 我正在开发一个从网站上删除数据的应用程序,我想知道如何获取数据.具体来说,我需要包含在许多使用特定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) 好吧,我正在试图弄清楚如何从网页中提取信息,并将其带入我的程序(用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
使用Haskell抓取网站的库的当前状态是什么?
我正努力让自己在Haskell中完成更多快速的一次性任务,以帮助提高我对语言的舒适度.
在Python中,我倾向于使用优秀的PyQuery库.在Haskell中有类似简单易用的东西吗?我看过Tag Soup,虽然解析器本身看起来不错,但实际遍历页面并不像其他语言那样好看.
那里有更好的选择吗?
我想从 Python中的网页中提取特定类型的信息.让我们说邮政地址.它有数千种形式,但仍然可以辨认出来.由于存在大量表单,因此编写正则表达式甚至是语法之类的东西并使用解析器生成器来解析它可能非常困难.
所以我认为应该采用的方式是机器学习.如果我理解得很好,我应该能够制作一个数据样本,在那里我将指出应该是什么结果,然后我有一些东西可以从中学习如何自己识别结果.这就是我对机器学习的全部了解.也许我可以使用一些自然语言处理,但可能并不多,因为所有的图书馆都使用英语,我需要这个用于捷克语.
问题:
更新:
正如你们所提到的,我应该展示一些我想要脱离网络的数据,这里有一个例子.我对电影放映时间很感兴趣.它们看起来像这样(其中三个):
<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) 考虑一下这种情况,我想经常抓取网站,但是我的IP地址在某天/限制后被阻止了.
那么,如何动态更改我的IP地址或任何其他想法?
我试图从用户向下滚动到底部(无限滚动)动态生成内容的页面中抓取链接.我曾尝试用Phantomjs做不同的事情但不能收集第一页以外的链接.让我们说加载内容的底部元素具有类.has-more-items.它在滚动期间加载最终内容之前可用,然后在DOM中变为不可用(显示:无).以下是我试过的事情 -
var page = require('webpage').create();page.viewportSize = {width:1600,height:10000,};
page.scrollPosition = { top: 10000, left: 0 }内部,page.open但没有效果像 -Run Code Online (Sandbox Code Playgroud)page.open('http://example.com/?q=houston', function(status) { if (status == "success") { page.scrollPosition = { top: 10000, left: 0 }; } });
page.evaluate功能内但是给出了参考错误:找不到变量页面
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) 如果我想先刮一个需要用密码登录的网站,怎样才能开始使用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
web-scraping ×10
html ×3
python ×3
html-parsing ×2
java ×2
javascript ×2
phantomjs ×2
scrapy ×2
web-crawler ×2
ajax ×1
dom ×1
dynamic-ip ×1
extract ×1
haskell ×1
ip ×1
jsoup ×1
node.js ×1
parsing ×1