我试图从使用__doPostBack功能的网站搜索搜索结果.该网页每个搜索查询显示10个结果.要查看更多结果,必须单击触发__doPostBackjavascript 的按钮.经过一些研究,我意识到POST请求的行为就像一个表单,并且可以简单地使用scrapy FormRequest来填充该表单.我用了以下帖子:
使用scrapy与javascript __doPostBack方法的麻烦
编写以下脚本.
# -*- coding: utf-8 -*-
from scrapy.contrib.spiders import CrawlSpider
from scrapy.http import FormRequest
from scrapy.http import Request
from scrapy.selector import Selector
from ahram.items import AhramItem
import re
class MySpider(CrawlSpider):
name = u"el_ahram2"
def start_requests(self):
search_term = u'??????'
baseUrl = u'http://digital.ahram.org.eg/sresult.aspx?srch=' + search_term + u'&archid=1'
requests = []
for i in range(1, 4):#crawl first 3 pages as a test
argument = u"'Page$"+ str(i+1) + u"'"
data = {'__EVENTTARGET': u"'GridView1'", '__EVENTARGUMENT': …Run Code Online (Sandbox Code Playgroud) 将鼠标(链式方程的多重方程)包更新到版本 >3 后,我的代码停止工作。我希望从乘法插补数据集的线性回归中检索估计的方差-协方差矩阵。在 2.46.0 版本中,可以使用pool函数轻松访问该数量(小鼠将其称为t ) 。在 mouse >3.0 版本中,池函数不再返回完整的方差-协方差矩阵,它仅返回方差-协方差矩阵的对角元素。
这是一个工作示例:
首先创建一些包含缺失值的数据集:
set.seed(243)
iris$Sepal.Length[sample(length(iris$Sepal.Length), size = 5)] <- NA
iris$Sepal.Width[sample(length(iris$Sepal.Width), size = 5)] <- NA
iris$Petal.Length[sample(length(iris$Petal.Length), size = 5)] <- NA
iris$Species[sample(length(iris$Species), size = 5)] <- NA
Run Code Online (Sandbox Code Playgroud)
第二次乘法估算缺失数据
iris.mi <- mice(iris, 5)
Run Code Online (Sandbox Code Playgroud)
第三,对每个乘法插补数据集执行线性回归,将结果存储在 mira 对象中
mira.out <- with(iris.mi, lm(Sepal.Width ~ Sepal.Length + Petal.Length + Petal.Width + Species))
Run Code Online (Sandbox Code Playgroud)
第四,使用鲁宾规则汇集这些分析的结果。这是通过小鼠中的池函数实现的。
pool.out <- pool(analyses)
Run Code Online (Sandbox Code Playgroud)
在 mouse 包的 2.46.0 版本中,可以通过输入来检索完整的方差协方差矩阵t
pool.out$t
Run Code Online (Sandbox Code Playgroud)
在 mouse 包的较新版本 (>3.0) 中, pool.out$t 对象不存在。我们所能做的就是通过输入来检索差异
pool.out$pooled
Run Code Online (Sandbox Code Playgroud)
并选择标记为t …