是否有一个命令可以在创建新容器后运行以从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我想推出自己的代码部署和容器配置脚本.
我最近一直在学习Python,并且正在努力构建一个web-scraper.它根本没什么特别的; 它的唯一目的是从博彩网站获取数据并将这些数据放入Excel.
大多数问题都是可以解决的,而且我有一点点混乱.但是,我在一个问题上遇到了巨大的障碍.如果网站加载了马匹表并列出了当前的投注价格,则此信息不在任何源文件中.线索是这些数据有时是有效的,数字显然是从某个远程服务器更新的.我的电脑上的HTML只是一个漏洞,他们的服务器正在推动我需要的所有有趣的数据.
现在我对动态网页内容的体验很低,所以这件事让我无法理解.
我认为Java或Javascript是一个关键,这经常会弹出.
刮刀只是一种赔率比较引擎.有些网站有API,但我需要这些API.我正在使用Python 2.7的scrapy库
如果这个问题太开放,我真的很抱歉.简而言之,我的问题是:如何使用scrapy来抓取这些动态数据,以便我可以使用它?这样我就可以实时抓取这个赔率数据?
我试图刮一个网站,但我没有得到一些元素,因为这些元素是动态创建的.
我在node.js中使用cheerio,我的代码在下面.
var request = require('request');
var cheerio = require('cheerio');
var url = "http://www.bdtong.co.kr/index.php?c_category=C02";
request(url, function (err, res, html) {
var $ = cheerio.load(html);
$('.listMain > li').each(function () {
console.log($(this).find('a').attr('href'));
});
});
Run Code Online (Sandbox Code Playgroud)
此代码返回空响应,因为页面加载时<ul id="store_list" class="listMain">为空.
内容尚未附加.
如何使用node.js获取这些元素?如何使用动态内容抓取页面?
我需要用python抓一个站点.我获得与urlib模块的源HTML代码,但我需要也刮由一个JavaScript功能(这是包含在HTML源)中产生一些HTML代码.这个功能在网站中的作用是当你按下一个按钮时输出一些HTML代码.如何用python代码"按下"这个按钮?scrapy可以帮助我吗?我用firebug捕获了POST请求,但是当我尝试在url上传递它时,我收到403错误.有什么建议?
什么是抓住动态网站的最佳方法,其中大部分内容是由似乎是ajax请求生成的?我之前有过使用Mechanize,BeautifulSoup和python组合的经验,但我还有新的东西.
- 编辑 - 更多细节:我正在试图刮掉CNN 主数据库.那里有大量的信息,但似乎没有api.
我使用Selenium Webdriver for C#和Python来从网站获取数据元素,但网络抓取的速度非常慢.刮掉35000个数据表花了我大约1.5天.使用Selenium Webdriver,我可以执行Javascript来获取Java元素.是否有一些库可用,不需要类似Webdriver的东西在网页上执行Javascript来检索元素,并且还可以点击元素?或者是否有更快的替代Selenium?
我有一个页面,我需要获取与BS4一起使用的源,但页面中间需要1秒(可能更少)来加载内容,并且requests.get在加载部分之前捕获页面的源,如何在获取数据之前,我可以等一下吗?
r = requests.get(URL + self.search, headers=USER_AGENT, timeout=5 )
soup = BeautifulSoup(r.content, 'html.parser')
a = soup.find_all('section', 'wrapper')
Run Code Online (Sandbox Code Playgroud)
<section class="wrapper" id="resultado_busca">
Run Code Online (Sandbox Code Playgroud) 屏幕抓取一些网站时,我从<script>标签中提取数据.
我得到的数据不是标准JSON格式.我不能用json.loads().
# from
js_obj = '{x:1, y:2, z:3}'
# to
py_obj = {'x':1, 'y':2, 'z':3}
Run Code Online (Sandbox Code Playgroud)
目前,我regex用来将原始数据转换为JSON格式.
但是当我遇到复杂的数据结构时,我感觉非常糟糕.
你有更好的解决方案吗?
我已经读了两个小时这个反向代理的文档来添加CORS头文件,我无法使用.能否请您帮助一个简单的例子如何使用它.
我在javascript中尝试过这个例子
(function() {
var cors_api_host = 'cors-anywhere.herokuapp.com';
var cors_api_url = 'https://' + cors_api_host + '/';
var slice = [].slice;
var origin = window.location.protocol + '//' + window.location.host;
var open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
var args = slice.call(arguments);
var targetOrigin = /^https?:\/\/([^\/]+)/i.exec(args[1]);
if (targetOrigin && targetOrigin[0].toLowerCase() !== origin &&
targetOrigin[1] !== cors_api_host) {
args[1] = cors_api_url + args[1];
}
return open.apply(this, args);
};
})();
Run Code Online (Sandbox Code Playgroud)
我真的不明白我是否需要node.js或究竟是什么
有没有办法从网页上获取执行的javascript内容?我已经尝试过请求+ BeautifulSoup,机械化,这些让我得到了网页的"源代码",而不是执行的javascript.例如,这个网站: - http://listen.tidal.com/login
正如您所看到的,在源代码中,存在未执行的JS,但是,当您检查元素时,您将看到执行的代码.
现在,有什么方法可以在python中获得EXECUTED代码吗?请提示,因为我尝试使用mechanize来模拟浏览器,它就像reuqests一样.谢谢
javascript ×7
python ×4
ajax ×2
browser ×2
web-scraping ×2
cors ×1
docker ×1
json ×1
node.js ×1
phantomjs ×1
python-2.7 ×1
python-3.x ×1
request ×1
scrapy ×1
selenium ×1
web-crawler ×1
webdriver ×1