这是我之前提到过的一个后续问题.
我正在尝试抓取一个我必须首先登录的网页.但经过身份验证后,我需要的网页需要运行一些Javascript才能查看内容.我所做的是按照这里的说明安装splash来尝试渲染Javascript.然而...
在我切换到启动之前,使用Scrapy进行身份验证InitSpider很好.我正在通过登录页面并抓取目标页面确定(显然,除非没有Javascript工作).但是,一旦我添加代码以通过启动传递请求,看起来我似乎没有解析目标页面.
下面的蜘蛛.启动版本(此处)与非启动版本之间的唯一区别是该功能def start_requests().两者之间的其他一切都是一样的.
import scrapy
from scrapy.spiders.init import InitSpider
from scrapy.spiders import Rule
from scrapy.linkextractors import LinkExtractor
class BboSpider(InitSpider):
name = "bbo"
allowed_domains = ["bridgebase.com"]
start_urls = [
"http://www.bridgebase.com/myhands/index.php"
]
login_page = "http://www.bridgebase.com/myhands/myhands_login.php?t=%2Fmyhands%2Findex.php%3F"
# authentication
def init_request(self):
return scrapy.http.Request(url=self.login_page, callback=self.login)
def login(self, response):
return scrapy.http.FormRequest.from_response(
response,
formdata={'username': 'USERNAME', 'password': 'PASSWORD'},
callback=self.check_login_response)
def check_login_response(self, response):
if "recent tournaments" in response.body:
self.log("Login successful")
return self.initialized()
else:
self.log("Login failed")
print(response.body)
# pipe the …Run Code Online (Sandbox Code Playgroud) 我试图简单地连接到Twitter streaming APIusing tweepy(和python 3),并从给定的单个用户流式传输所有推文.
我觉得这是可能的,所以我有以下简单的代码来做到这一点:
from tweepy import StreamListener
from tweepy import Stream
import tweepy
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
class StdOutListener(StreamListener):
def on_data(self, data):
# process stream data here
print(data)
def on_error(self, status):
print(status)
if __name__ == '__main__':
listener = StdOutListener()
twitterStream = Stream(auth, listener)
twitterStream.filter(follow=['575930104'])
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行它时,我只是从Twitter获得了一堆406代码.我试图使用tweepy的方式有什么明显的错误,或者"跟随"参数是不是设计用于我认为它做的事情?
编辑:我也发布了这个讨论板,仅供参考.
Python(和matplotlib)新手来自R,所以我希望这个问题不是太愚蠢.我正在尝试在自然对数范围内制作loglog图.但经过一些谷歌搜索后,我无法以某种方式弄清楚如何强制pyplot在轴上使用基本e标度.我目前的代码:
import matplotlib.pyplot as pyplot
import math
e = math.exp(1)
pyplot.loglog(range(1,len(degrees)+1),degrees,'o',basex=e,basey=e)
Run Code Online (Sandbox Code Playgroud)
degrees每个值的计数向量在哪里range(1,len(degrees)+1).由于某种原因,当我运行此代码时,pyplot不断给我一个在轴上具有2的幂的图.我觉得这应该很容易,但我很难过......
任何意见是极大的赞赏!
我有一个如下所示的数据框df:
+---+------------+-----------+--------+
| | date | violation | pounds |
+---+------------+-----------+--------+
| 0 | 2010-05-13 | N | NaN |
| 1 | 2015-04-22 | Y | NaN |
| 2 | 2009-08-12 | Y | NaN |
| 3 | 2006-06-01 | NaN | 3732.0 |
| 4 | 2006-08-01 | NaN | 1340.0 |
| 5 | 2006-10-01 | NaN | 1310.0 |
+---+------------+-----------+--------+
Run Code Online (Sandbox Code Playgroud)
我想pounds用时间序列给出的水平坐标在垂直轴上绘制变量date,并将垂直线覆盖在violation不是 Nan 的地方。基本上,我想要下面的图表,除了在非 NaN 值为 的垂直条 …
我正在尝试在 Python 中根据某种丑陋的分布生成随机变量。我有一个 PMF 的显式表达式,但它涉及一些乘积,这使得获取和反转 CDF 变得不那么愉快(请参阅下面的 PMF 显式形式的代码)。
本质上,我试图通过 PMF 在 Python 中定义一个随机变量,然后让内置代码完成从分布中采样的艰苦工作。如果 RV 的支撑是有限的,我知道该怎么做,但这里的支撑是可数无限的。
我目前正在尝试按照下面 @askewchan 的建议运行的代码是:
import scipy as sp
import numpy as np
class x_gen(sp.stats.rv_discrete):
def _pmf(self,k,param):
num = np.arange(1+param, k+param, 1)
denom = np.arange(3+2*param, k+3+2*param, 1)
p = (2+param)*(np.prod(num)/np.prod(denom))
return p
pa_limit = limitrv_gen()
print pa_limit.rvs(alpha,n=1)
Run Code Online (Sandbox Code Playgroud)
但是,这会在运行时返回错误:
File "limiting_sim.py", line 42, in _pmf
num = np.arange(1+param, k+param, 1)
TypeError: only length-1 arrays can be converted to Python scalars
Run Code Online (Sandbox Code Playgroud)
基本上,列表似乎在函数np.arange()内部不起作用def _pmf()。我不知道为什么。有人可以在这里启发我和/或指出解决办法吗?
编辑1: …
对不起,如果这个问题很简单,但是我想弄清楚如何在R中绘制某种类型的自然三次样条(NCS)并且它完全没有我.
在之前的一个问题中,我学会了如何在ggplot中绘制由ns()命令生成的NCS,但我对如何在pspline包中生成稍微不同的NCS生成smooth.Pspline命令感兴趣.据我所知,这是唯一一个自动为CV给定数据集选择适当平滑罚分的包.
理想情况下,我可以提供smooth.Pspline作为ggplot2中stat_smooth图层的方法.我目前的代码如下:
plot <- ggplot(data_plot, aes(x=age, y=wOBA, color=playerID, group=playerID))
plot <- plot + stat_smooth(method = lm, formula = y~ns(x,4),se=FALSE)
Run Code Online (Sandbox Code Playgroud)
我想用smooth.Pspline的功能替换"lm"公式.我做了一些谷歌搜索,并找到了一个非常相似的B样条函数smooth.spline 的解决方案,由Hadley编写.但是我无法使其适应光滑.Pspline非常完美.有任何人对此有经验吗?
非常感谢!
这是一个关于图形工具的一个荒谬的基本问题,这应该是很容易弄清楚如何使用文档来解决,但我正在旋转.我不怀疑文档是否全面,但它肯定不会让这很容易.
目标:给定图G,根据G的顶点列表提取诱导子图.
我知道我应该以GraphView某种方式这样做.我明白了.我也明白我需要为此做一个顶点PropertyMap.但究竟应该创造什么呢?
这里的文档非常缺乏.例如,PropertyMaps上的页面说每个PropertyMap都可以是某种类型,但我还没弄清楚这意味着什么.这些类型代表什么?我什么时候想要使用另一种类型?鉴于显然PropertyMaps对图形工具的有效使用有多重要,我对文档的不清楚感到有点困惑.
对于这个问题,我得到了模糊的感觉,我需要使用布尔类型,因为我可能想要将子图中我想要的顶点设置为"true",而我不希望子图中的顶点为"false". " 但这是否意味着PropertyMap我创建的需要与原始图G中的节点数相同?或者我可以只提供一个节点列表,并以某种方式让它被理解为那些是唯一被设置为True?
我不明白为什么以下练习在第一原理的Haskell编程中 "有效" :
type Subject = String
type Verb = String
type Object = String
data Sentence =
Sentence Subject Verb Object
deriving (Eq, Show)
s1 = Sentence "dogs" "drool"
s2 = Sentence "Julie" "loves" "dogs"
Run Code Online (Sandbox Code Playgroud)
将其加载到ghci中表明它可以很好地解决问题,但为什么定义s1甚至有意义呢?我仍然是Haskell的新手,所以起初我认为这是因为在s1Haskell中隐含地让Object字符串为空.但是之后...
*Main> s1
<interactive>:13:1:
No instance for (Show (Object -> Sentence))
arising from a use of `print'
Possible fix:
add an instance declaration for (Show (Object -> Sentence))
In a stmt of an interactive GHCi command: print …Run Code Online (Sandbox Code Playgroud) 我是Haskell的新手,在" 第一原理"一书的Haskell编程中遇到了一个有点令人费解的例子.在第6章结束时突然想到以下内容不起作用:
constant :: (Num a) => a
constant = 1.0
Run Code Online (Sandbox Code Playgroud)
但是,以下工作正常:
f :: (Num a) => a -> a
f x = 3*x
Run Code Online (Sandbox Code Playgroud)
我可以输入任何数值x进入函数f,什么都不会破坏.它不仅限于采用整数.这对我来说很直观.但是常量的例子让我感到困惑.
在本书的reddit 线程上解释(释义),常量示例不起作用的原因是类型声明强制值constant只是比不具体的事物Num.因此,试图将值分配给它的是从一个子类Num像Fractional不洁净.
如果这个解释是正确的,那么我认为这两个例子看起来完全相反吗?在一种情况下,类型声明强制值尽可能通用.在另一种情况下,函数的可接受值可以是实现的任何值Num.
谁能让我直截了当?
在Haskell Programming from First Principles一书中,有一个练习告诉我们编写一个函数,它接受一个带有空格的字符串,用空格分割它,并将非空间块加载到一个字符串列表中.我的第一次尝试是:
splitString :: String -> [String]
splitString str
| str == "" = []
| otherwise = takeWhile (/=' ') str : splitString $ drop 1 $ dropWhile (/=' ') str
Run Code Online (Sandbox Code Playgroud)
现在这不编译.如果我将第一个($)(右后splitString)替换为相应的括号对,如下所示:
takeWhile (/=' ') str : splitString (drop 1 $ dropWhile (/=' ') str)
Run Code Online (Sandbox Code Playgroud)
然后它工作.根据我迄今为止所学到的关于($)的内容,不应该两者相等吗?($)是正确的联想,因此在我看来应该发生的事情是什么
dropWhile (/=' ') str 首先评估drop 1 (dropWhile (/=' ') str) 是下一个splitString.相反,我得到一个错误,从ghc它说
Couldn't match expected type ‘[Char] -> [String]’
with …Run Code Online (Sandbox Code Playgroud)