小编Jos*_*eph的帖子

scrapy可以用来从使用AJAX的网站上抓取动态内容吗?

我最近一直在学习Python,并且正在努力构建一个web-scraper.它根本没什么特别的; 它的唯一目的是从博彩网站获取数据并将这些数据放入Excel.

大多数问题都是可以解决的,而且我有一点点混乱.但是,我在一个问题上遇到了巨大的障碍.如果网站加载了马匹表并列出了当前的投注价格,则此信息不在任何源文件中.线索是这些数据有时是有效的,数字显然是从某个远程服务器更新的.我的电脑上的HTML只是一个漏洞,他们的服务器正在推动我需要的所有有趣的数据.

现在我对动态网页内容的体验很低,所以这件事让我无法理解.

我认为Java或Javascript是一个关键,这经常会弹出.

刮刀只是一种赔率比较引擎.有些网站有API,但我需要这些API.我正在使用Python 2.7的scrapy库

如果这个问题太开放,我真的很抱歉.简而言之,我的问题是:如何使用scrapy来抓取这些动态数据,以便我可以使用它?这样我就可以实时抓取这个赔率数据?

javascript python ajax screen-scraping scrapy

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

是否可以使用Selenium WebDriver来驱动PhantomJS?

我正在阅读Selenium WebDriver的文档,例如它可以驱动Chrome.我在想,"驾驶"PhantomJS会不会更有效率?

有没有办法使用Selenium和PhantomJS?

我的预期用途是网页抓取:我抓的网站加载了AJAX和许多可爱的JavaScript,我认为这个设置可能是我正在使用的Scrapy Python框架的一个很好的替代品.

selenium webdriver web-scraping phantomjs

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

使用Notepad ++编译Java代码

我一直在尝试将Notepad ++设置为一个小Java环境,主要用于学习Java,因为我在使用NetBeans时遇到一个简单的程序有些困难,遗憾的是,关于设置Notepad ++以调用Java代码的所有建议都不起作用.

我想notepad ++已经改变或者Java开发工具包已经被大规模修改,因为我使用的所有示例都会导致错误,即使几乎没有错误的余地.

开始我发现这个网站:http: //blog.sanaulla.info/2008/07/25/using-notepad-to-compile-and-run-java-programs/

这是运行Javac来编译代码的代码:

javac “$(FILE_NAME)”
Run Code Online (Sandbox Code Playgroud)

java “$(NAME_PART)”
Run Code Online (Sandbox Code Playgroud)

运行生成的字节代码,但这完全没有成功.Java已正确设置,我可以通过CMD调用Java程序来完成它的工作.

使用名为npp的插件并通过F6调用并使用此代码运行(在注释中给出)成功将Java程序编译为正确的.class文件,但是命令在运行程序时失败

cd “$(CURRENT_DIRECTORY)”
javac $(FILE_NAME)
java $(NAME_PART)
Run Code Online (Sandbox Code Playgroud)

Notepad ++中控制台的错误是:

java.lang.NoClassDefFoundError: first
Caused by: java.lang.ClassNotFoundException: first
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: first.  Program will exit.
Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)

我认为设置Notepad ++来编译和运行代码会很容易和有趣,但它似乎互联网上的所有文档都已过时,因为没有任何作用.

我想从Notepad ++中编写和运行Java代码的简单方法

我可以使用CMD,但我更愿意将它集成到记事本++中

感谢您提供任何帮助.欢呼:)

编辑:我使用的是最新版本的Java,记事本++和Windows 7

编辑2:代码:

 //A Very Simple Example
 class ExampleProgram {

   public …
Run Code Online (Sandbox Code Playgroud)

java notepad++

25
推荐指数
1
解决办法
9万
查看次数

是否可以从node.js运行PhantomJS作为命令行参数

我最近将测试从python运行phantomJS作为命令行参数,我还没有完成它但是已经看到了例子.因为PhantomJS是从命令行运行的,所以这似乎是可能的.PhantomJS吐出的结果将直接变成一个变量.

在我走这条路之前,在node.js中进行这项工作对我来说实际上会更有用,它让我思考,我可以使用节点来运行PhantomJS,因为程序从命令行运行并存储数据结果PhantomJS通常会吐出一个变量吗?

我宁愿不使用phantomjs-node,因为它似乎使用了太多的技巧.

所有这一切的原因是能够在程序采取的另一个动作的同时运行PhantomJS并使用其记录的结果数据用于其他一些东西.

简单地说,你可以在python中运行系统命令行东西,我可以在node.js中做同样的事情吗?

干杯:)

编辑:我理解节点和幻像使用不同的js环境,这很酷,因为我只想将幻像作为自己的进程运行并将所有输出数据捕获到node.js变量中(数据将是一对数组,字符串和浮点.)我不想用幻象"开车",我会制作加载的javascript文件,以达到我想要的效果.我想要的只是幻象输出.:)

node.js phantomjs

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

斐波纳契数,为什么这种反复出现的功能有效?

我正在阅读一本编程书,其中一个例子是关于斐波纳契数,以及一个重复函数如何找到第n个的斐波纳契数.

代码如下所示:

Int fib (int n)
{
If (n<3)
Return (1);
Else
Return (fib(n-1))+(fib(n-2))
}
Run Code Online (Sandbox Code Playgroud)

现在这不完全正确,因为我正在通过手机输入并且我理解代码是如何工作的,它会调用自身直到它返回1,然后它会将返回值相加,直到您拥有正确的位置斐波那契数字为止顺序.

所以我不需要代码的帮助.我需要帮助的是理解为什么这有效.如何添加所有回报给出正确的答案?

请有人解释为什么这有效.谢谢.这让我很生气.

c++ numbers fibonacci

9
推荐指数
4
解决办法
3083
查看次数

将scrapy蜘蛛打造成我自己的程序,我不想从命令行调用scrapy)

与此问题类似: stackoverflow:run-multiple-spiders-in-scrapy

我想知道,我可以在另一个python程序中运行整个scrapy项目吗?让我们说我想构建一个需要抓取几个不同站点的整个程序,并为每个站点构建整个scrapy项目.

而不是从命令行运行,我想运行这些蜘蛛并从中获取信息.

我可以在python OK使用MongoDB的,我已经可以构建包含蜘蛛,但现在只是合并这一切到一个应用程序scrapy项目.

我想运行一次应用程序,并且能够从我自己的程序中控制多个蜘蛛

为什么这样?以及此应用程序还可以使用API​​连接到其他站点,并且需要实时比较API站点和已删除站点的结果.我不想从命令行调用scrapy,它的意思是自包含.

(我最近一直在问很多关于抓取的问题,因为我正在努力寻找合适的解决方案来构建)

谢谢 :)

python scrapy web-scraping

8
推荐指数
1
解决办法
1597
查看次数

如何加载位图图像并操纵单个像素?

我想从文件加载一个大的位图图像,运行一个操作单个像素的函数,然后重新保存位图.

文件格式可以是PNG或BMP,操作函数很简单,例如:

if r=200,g=200,b=200 then +20 on all values, else -100 on all values
Run Code Online (Sandbox Code Playgroud)

技巧是能够加载位图并能够逐行读取每个像素

Java中是否有可以处理此I/O的标准库机制?

(位图需要几百万像素,我需要能够处理数百万像素)

java image pixel bitmap image-processing

7
推荐指数
1
解决办法
2万
查看次数

如何在页面加载时加载诸如字体awesome之类的Web字体?

此问题适用于主页上不需要Web字体且最初位于div设置内的情况display:none;

我有一个网页,通过点击加载一个隐藏的表格,这个表格使用网络字体.我的问题是,当用户点击显示表单时会有一秒钟的延迟,就像Chrome下载woff2文件时那样.

这对用户体验来说并不是很好.

我需要预加载webfont,因为我没有使用主页上的字体,所以没有什么可以让Chrome woff2在用户点击显示隐藏表单之前获取文件.

我注意到,如果您在服务器上托管Font Awesome或使用CDN,这无关紧要.

我在互联网上环顾四周看看可以做些什么,我尝试了以下所有内容并且没有任何帮助,没有任何因素导致woff2文件在页面加载时加载,它只在网页主动需要字体时加载.

尝试1:预加载

<link rel="preload" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2">
Run Code Online (Sandbox Code Playgroud)

要么

<link rel="preload" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2" as="font">
Run Code Online (Sandbox Code Playgroud)

尝试2:预取

<link rel="prefetch" href="form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2">
Run Code Online (Sandbox Code Playgroud)

尝试3:CSS

@font-face {
    font-family: 'Font-Awesome';
    src: url('form/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2') format("woff2");;
}
Run Code Online (Sandbox Code Playgroud)

当我环顾四周时,我开始看到基于Javascript的加载可能的解决方案,我真的不想接近,所以我的选择是什么?

html css webfonts font-awesome

5
推荐指数
1
解决办法
8095
查看次数

C++程序没有按预期运行,双重转换是不应该的

我正在制作一个程序,用不同的小数位来舍入数字,所以作为一个例子,2001.3666最终将成为2001.37,我设法通过添加0.005然后100次并转换为int然后再分为100来完成这项工作.

一切都很好,没有问题,有一些乐趣制作一些循环和东西,但然后一切都变得奇怪.

你看到那个程序的第一行重复用户输入的内容开始显示圆形图而不是用户输入的实际数字.

过了一会儿,我得出的结论是,这不是我的代码,因为我开始了一个新项目,并迅速编写了这段代码:

#include <iostream>
#include <string> 
using namespace std;


int main()
{
  cout << "enter: ";
  double numberWithDecimalPlaces;
  cin >> numberWithDecimalPlaces;
  cout << "you entered " << numberWithDecimalPlaces << endl;

  system("pause");
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

我输入2001.3666并且程序转到换行符,即使我没有编入代码并回复2001.37

它的确切输出是:

enter: 2001.3666
you entered 2001.37
Run Code Online (Sandbox Code Playgroud)

现在这是一个新项目中的全新程序,没有任何与我之前项目相同的变量名称,并且用户输入数字正在四舍五入,除非cin >>变量自动舍入,我发现它看起来不太像一些代码从早期的程序仍然在内存中并与此代码冲突.

哪个再也不太可能了?

我在win7上使用visual studio 2010

c++ precision iostream rounding visual-studio-2010

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

如何安装过时的Perl CPAN模块

我需要启动并运行一个程序,此时无法升级过时的Perl模块.

特别是,我想安装这个:

DBD-mysql的-3.0008

用法:

use Msql;

$dbh = Msql->connect($host);
Run Code Online (Sandbox Code Playgroud)

如何让这个模块工作?从长远来看,软件将被重写使用:

DBD :: mysql的

mysql perl cpan

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