小编gpa*_*rov的帖子

多个引导模态的滚动问题

我有一个页面,其中包含大量信息的模态,因此您需要滚动.此模态包含指向第二个模态的链接.

当我

  • 开放模式1
  • 点击链接打开模态2(模态1停留在后台)
  • 然后关闭模态2,以便我回到模态1

模态1失去滚动(仍然有一个滚动条,但它没有做任何事情).相反,模态保持在打开模态2时的位置.

我一开始就用js关闭背景模态(但这会让第二个模态上的滚动变得混乱).似乎每当我尝试打开/关闭多个模态时,我总是会遇到滚动问题.

有关如何处理这个的任何建议?

html javascript jquery twitter-bootstrap bootstrap-modal

16
推荐指数
5
解决办法
7068
查看次数

Scrapy CrawlSpider不会抓取第一个登录页面

我是Scrapy的新手,我正在进行刮擦练习,而我正在使用CrawlSpider.尽管Scrapy框架运行得很漂亮并且它遵循相关链接,但我似乎无法使CrawlSpider刮掉第一个链接(主页/登录页面).相反,它会直接刮取规则确定的链接,但不会刮取链接所在的登录页面.我不知道如何解决这个问题,因为不建议覆盖CrawlSpider的解析方法.修改follow = True/False也不会产生任何好结果.以下是代码片段:

class DownloadSpider(CrawlSpider):
    name = 'downloader'
    allowed_domains = ['bnt-chemicals.de']
    start_urls = [
        "http://www.bnt-chemicals.de"        
        ]
    rules = (   
        Rule(SgmlLinkExtractor(aloow='prod'), callback='parse_item', follow=True),
        )
    fname = 1

    def parse_item(self, response):
        open(str(self.fname)+ '.txt', 'a').write(response.url)
        open(str(self.fname)+ '.txt', 'a').write(','+ str(response.meta['depth']))
        open(str(self.fname)+ '.txt', 'a').write('\n')
        open(str(self.fname)+ '.txt', 'a').write(response.body)
        open(str(self.fname)+ '.txt', 'a').write('\n')
        self.fname = self.fname + 1
Run Code Online (Sandbox Code Playgroud)

python web-crawler scrapy

12
推荐指数
2
解决办法
6149
查看次数

使用Python Scrapy爬网多个站点,每个站点的深度有限

我是Scrapy的新手,我正在尝试使用CrawlSpider从文本文件中抓取多个站点.不过,我想限制刮深度一次网站,也抓取网页的总数每个网站.不幸的是,当设置start_urls和allowed_domains属性时,response.meta ['depth']似乎总是为零(当我试图抓取单个站点时,这不会发生).在设置文件中设置DEPTH_LIMIT似乎根本不做任何事情.当我删除init定义并简单地设置start_urls和allowed_domains似乎工作正常.这是代码(抱歉缩进 - 这不是问题):

class DownloadSpider(CrawlSpider):
  name = 'downloader'
  rules = (
    Rule(SgmlLinkExtractor(), callback='parse_item', follow=True),
    )
  def __init__(self, urls_file, N=10):
      data = open(urls_file, 'r').readlines()[:N]
      self.allowed_domains = [urlparse(i).hostname.strip() for i in data] 
      self.start_urls = ['http://' + domain for domain in self.allowed_domains]

  def parse_start_url(self, response):
      return self.parse_item(response)

  def parse_item(self, response):
      print response.url
      print response.meta['depth']
Run Code Online (Sandbox Code Playgroud)

这导致response.meta ['depth']总是等于零,并且cralwer只抓取start_urls的每个元素的第一个站点(即它不跟随任何链接).所以,我有两个问题1)如何抓取限制为一定深度在start_urls 2)如何限制每个网站抓取的总数不考虑深度的每个部位

谢谢 !

python web-crawler scrapy

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

如何在Python Scrapy中限制每个站点的后续页面数

我正在尝试构建一个可以有效地从许多网站上抓取文本信息的蜘蛛.由于我是Python用户,我被提到了Scrapy.但是,为了避免抓取大型网站,我想限制蜘蛛每个网站不超过20页的某个"深度" .这是我的蜘蛛:

class DownloadSpider(CrawlSpider):
    name = 'downloader'
    download_path = '/home/MyProjects/crawler'
    rules = (Rule(SgmlLinkExtractor(), callback='parse_item', follow=True),)

    def __init__(self, *args, **kwargs):
        super(DownloadSpider, self).__init__(*args, **kwargs)
        self.urls_file_path = [kwargs.get('urls_file')]
        data = open(self.urls_file_path[0], 'r').readlines()
        self.allowed_domains = [urlparse(i).hostname.strip() for i in data] 
        self.start_urls = ['http://' + domain for domain in self.allowed_domains]

    def parse_start_url(self, response):
        return self.parse_item(response)

    def parse_item(self, response):
        self.fname = self.download_path + urlparse(response.url).hostname.strip()
        open(str(self.fname)+ '.txt', 'a').write(response.url)
        open(str(self.fname)+ '.txt', 'a').write('\n')
Run Code Online (Sandbox Code Playgroud)

urls_file是带有url的文本文件的路径.我还在设置文件中设置了最大深度.这是我的问题:如果我设置了CLOSESPIDER_PAGECOUNT异常,它会在抓取页面的总数(无论哪个站点)达到异常值时关闭蜘蛛.但是,当我从每个网址上说20页时,我需要停止抓取.我也尝试使用像self.parsed_number + = 1这样的变量保持计数,但这也不起作用 - 似乎scrapy不会通过url进行url但是将它们混合起来.任何建议都非常感谢!

python web-crawler scrapy

6
推荐指数
2
解决办法
3957
查看次数

使用sklearn和Python进行大型应用程序分类/抓取练习

我正在研究一个相对较大的基于文本的Web分类问题,我计划在python中使用sklearn中的多项Naive Bayes分类器和爬行的scrapy框架.但是,我有点担心sklearn/python对于可能涉及数百万个网站分类的问题来说可能太慢了.我已经在DMOZ的几千个网站上训练了分类器.研究框架如下:

1)爬虫登陆域名并从站点上的20个链接(深度不大于1)中抓取文本.(对于爬行器的示例运行,此处的标记化单词的数量似乎在几千到高达150K之间变化)2)运行具有大约50,000个特征的sklearn多重NB分类器并根据结果记录域名

我的问题是基于Python的分类器是否适合这种大规模应用程序的任务,还是应该尝试在更快的环境中重写分类器(也可能是刮刀和字标记器)?如果是,那环境可能是什么?或者,如果伴随着代码的某些并行化,Python就足够了?谢谢

python classification scrapy scikit-learn

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

Scrapyd找不到项目名称

当我尝试在scrapyd上运行现有的scrapy项目时出现错误.

我有一个工作scrapy项目(url_finder)和用于测试目的的项目中的一个工作蜘蛛(test_ip_spider_1x),只需下载whatismyip.com.

我成功安装了scrapyd(使用apt-get),现在我想在scrapyd上运行spider.所以我执行:

curl http://localhost:6800/schedule.json -d project=url_finder -d spider=test_ip_spider_1x
Run Code Online (Sandbox Code Playgroud)

返回:

{"status": "error", "message": "'url_finder'"}
Run Code Online (Sandbox Code Playgroud)

这似乎表明该项目存在问题.但是当我执行时:scrapy crawl test_ip_spider_1x 一切运行正常.当我在Web界面中检查scrapyd日志时,这就是我得到的:

2014-04-01 11:40:22-0400 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:40:21 +0000] "POST /schedule.json HTTP/1.1" 200 47 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3"
2014-04-01 11:40:58-0400 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:40:57 +0000] "GET / HTTP/1.1" 200 747 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36"
2014-04-01 11:41:01-0400 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:41:00 +0000] "GET /logs/ HTTP/1.1" 200 1203 "http://localhost:6800/" "Mozilla/5.0 (X11; …
Run Code Online (Sandbox Code Playgroud)

scrapy scrapyd

4
推荐指数
1
解决办法
1468
查看次数

在 Pythonanywhere 上配置 nginx 服务器

我正在尝试“利用浏览器缓存”来提高网站速度。webapp 托管在 pythonanywhere 上,我想我需要配置 nginx.conf 文件以包含:

location ~* \.(css|js|gif|jpe?g|png)$ {
  expires 168h;
  add_header Pragma public;
  add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
Run Code Online (Sandbox Code Playgroud)

(从这里开始:如何在 django 中利用浏览器缓存

但是我在任何地方都找不到 conf 文件。它不在 /etc/nginx、/usr/local/etc /usr/etc ...

这可以在 pythonanywhere 上完成吗?

nginx browser-cache pythonanywhere

4
推荐指数
1
解决办法
598
查看次数