我一直在研究迄今为止可用的无头浏览器,并发现HtmlUnit被广泛使用.与HtmlUnit相比,我们有什么替代HtmlUnit可能具有优势吗?
谢谢Nayn
我目前正在尝试使用CasperJS和PhantomJS(这两个都是优秀的工具,感谢n1k0和Ariya)来抓取谷歌关键字工具,但我无法让它发挥作用.
这是我目前的流程:
Search.我坚持第3步:搜索表单不是常规HTML表单,我不能使用Casper#fill(),所以我直接访问字段.以下是我尝试更改Word or phrase字段值的一些语法:
this.evaluate(function() {
// Trying to change the value...
document.querySelector('textarea.sP3.sBFB').value = 'MY SUPER KEYWORDS';
document.querySelector('textarea.sP3.sBFB').setAttribute('value', 'MY SUPER KEYWORDS');
document.querySelector('textarea').value = 'MY SUPER KEYWORDS'; // there's only one <textarea> on the page
// Trying to change other attributes...
document.querySelector('textarea.sP3.sBFB').textContent = 'MY SUPER KEYWORDS';
document.querySelector('textarea').style.backgroundColor = 'yellow';
});
Run Code Online (Sandbox Code Playgroud)
什么都行不通.我正在做一个Casper#capture()正确的,看看该字段包含什么.正如您所看到的,它确认我在正确的页面上并且我已登录,但它<textarea>是空的.
奇怪的是,我可以访问DOM的其他部分:我可以改变一个链接,说的文本Advanced Options and Filters来___VINCE SAYS HELLO___(见截图),通过执行以下操作:
this.evaluate(function() { …Run Code Online (Sandbox Code Playgroud) 我正在使用PyQuery并希望打印链接列表,但无法弄清楚如何href从PyQuery语法中的每个链接获取属性.
这是我的代码:
e = pq(url=results_url)
links = e('li.moredetails a')
print len(links)
for link in links:
print link.attr('href')
Run Code Online (Sandbox Code Playgroud)
这打印10,然后给出以下错误:
AttributeError: 'HtmlElement' object has no attribute 'attr'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我被要求编写一个应用程序,该应用程序屏幕从内部网页面抓取信息,并以易于查看的格式呈现其中的特定信息.网页是一个真正的混乱,需要用户点击六个图标来发现订购的商品是否已经到达或已被收到.正如你可以想象的那样,用户发现这至少令人恼火,并且拥有一个任何人都可以使用的应用程序,在单个屏幕中列出他们的订单状态会很不错.
是的,我知道一个更好的解决方案是重新编写网络应用程序,但这将涉及到供应商,并将花费我们作为小财富.
无论如何,在我看到这个时,我发现我想要抓取的网页主要是Javascript(虽然它不使用任何AJAX技术).有没有人知道是否存在我可以使用Javascript提供的库或程序,然后会为我的应用程序解析DOM?
我几乎可以用任何语言编写应用程序,但我的偏好是JavaFX,所以我可以玩它.
谢谢你的时间.
伊恩
我正在开发一个下载HTML页面的程序,然后选择一些信息并将其写入另一个文件.
我想提取段落标记之间的信息,但我只能获得段落的一行.我的代码如下;
FileReader fileReader = new FileReader(file);
BufferedReader buffRd = new BufferedReader(fileReader);
BufferedWriter out = new BufferedWriter(new FileWriter(newFile.txt));
String s;
while ((s = br.readLine()) !=null) {
if(s.contains("<p>")) {
try {
out.write(s);
} catch (IOException e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图添加另一个while循环,这将告诉程序继续写入文件,直到该行包含</p>标记,通过说;
while ((s = br.readLine()) !=null) {
if(s.contains("<p>")) {
while(!s.contains("</p>") {
try {
out.write(s);
} catch (IOException e) {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.请有人帮忙.
html java screen-scraping text-extraction html-content-extraction
我的计划是让用户在我的程序中写下电影标题,我的程序将异步提取适当的信息,这样UI就不会冻结.
这是代码:
public class IMDB
{
WebClient WebClientX = new WebClient();
byte[] Buffer = null;
public string[] SearchForMovie(string SearchParameter)
{
//Format the search parameter so it forms a valid IMDB *SEARCH* url.
//From within the search website we're going to pull the actual movie
//link.
string sitesearchURL = FindURL(SearchParameter);
//Have a method download asynchronously the ENTIRE source code of the
//IMDB *search* website.
Buffer = WebClientX.DownloadDataAsync(sitesearchURL);
//Pass the IMDB source code to method findInformation().
//string [] lol = findInformation();
//???? …Run Code Online (Sandbox Code Playgroud) 我需要用python抓一个站点.我获得与urlib模块的源HTML代码,但我需要也刮由一个JavaScript功能(这是包含在HTML源)中产生一些HTML代码.这个功能在网站中的作用是当你按下一个按钮时输出一些HTML代码.如何用python代码"按下"这个按钮?scrapy可以帮助我吗?我用firebug捕获了POST请求,但是当我尝试在url上传递它时,我收到403错误.有什么建议?
寻找与Mechanize for .NET类似的东西......
如果您不知道Mechanize是什么.. http://search.cpan.org/dist/WWW-Mechanize/
我会在这里保留一份建议清单.用于浏览/发布/屏幕抓取的任何内容(除了WebRequest和WebBrowser控件).
解析
Web应用程序测试
WatiN - Web应用程序测试框架(.NET) - http://watin.sourceforge.net/
Selenium - http://seleniumhq.org/
测试设计画布的艺术 - 花钱
工具
注意
WatiN接近我正在寻找的东西,除了它打开一个浏览器,这是令人讨厌和令人敬畏的同时.取决于你在做什么.
我希望能够操纵给定网址的html.像html抓取的东西.我知道这可以使用curl或一些抓取库来完成.但是我想知道是否可以使用jquery使用ajax对url发出get请求并检索url的html,并运行jquery代码HTML返回?
谢谢
我想连接到公共Facebook页面或组,并在个人网站上列出墙上的所有条目.我将在我的服务器上使用PHP,这对我来说是最好的解决方案.或者javascript.
任何人都可以解释或者提供一个如何做到这一点的工作代码?或者只是为了制作这个所有的步骤?
如果它可以处理每个帖子的人,日期,描述......的信息,那将是伟大的!所以我的布局可以定制.
谢谢你帮助我!
screen-scraping ×10
javascript ×4
c# ×2
html ×2
python ×2
ajax ×1
asynchronous ×1
browser ×1
dom ×1
download ×1
facebook ×1
htmlunit ×1
java ×1
jquery ×1
login ×1
mechanize ×1
phantomjs ×1
php ×1
pyquery ×1
web-crawler ×1
web-scraping ×1