小编Zey*_*nel的帖子

如何修复此AttributeError?

我昨天安装了一个条带包,现在我的应用程序没有运行.我试图了解问题所在.有什么事情做PyShellHTLParser或别的东西.我发布了GAE标签,希望日志中的跟踪可以提供有关问题的线索:

MLStripper instance has no attribute 'rawdata'
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/ting-1/1.354723388329082800/ting.py", line 2070, in post
    pitch_no_tags = strip_tags(pitch_original)
  File "/base/data/home/apps/ting-1/1.354723388329082800/ting.py", line 128, in strip_tags
    s.feed(html)
  File "/base/python_runtime/python_dist/lib/python2.5/HTMLParser.py", line 107, in feed
    self.rawdata = self.rawdata + data
AttributeError: MLStripper instance has no attribute 'rawdata'
Run Code Online (Sandbox Code Playgroud)

这是MLStripper:

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        set()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html): …
Run Code Online (Sandbox Code Playgroud)

html python google-app-engine html-parsing attributeerror

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

如何将nginx配置为jetty的代理?

我一直在尝试将nginx设置为jetty的代理.我想做一些像这个答案中解释的但是Jetty没有响.

我已创建了一个.war并将其放入~/jetty/jetty-dist/webapps/web_test-0.1.0-SNAPSHOT-standalone.war

说,我想使用域名example.com与IP地址198.51.100.0.

我也复制/etc/nginx/sites-available/default到文件中,example.com并将它放在同一目录中.

在我的情况下,你能帮我配置nginx作为jetty的代理吗?我知道网上有很多关于如何做到这一点的参考资料,但它们都不同,我感到困惑.

我需要在nginx中进行哪些具体更改?我需要在jetty.xml中进行哪些更改?我是否需要进行任何其他更改?我的应用会在example.com/index.html上发布吗?

nginx的当前状态复制如下:

upstream jetty {
  server 127.0.0.1:8080 fail_timeout=0
}

server {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        server_name localhost;

        location / {
                proxy_pass http://jetty

                try_files $uri $uri/ =404;
        }
Run Code Online (Sandbox Code Playgroud)

编辑

我想知道我是否需要使用Jetty.在这个设置中他只使用戒指,这似乎超级容易?使用码头可以获得什么?


java jetty nginx ring

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

如何在Google App Engine中添加Stripe库

我正在尝试在我的应用中实施Stripe付款https://stripe.com/.我需要包含这个库https://stripe.com/docs/libraries.我下载并安装在Lib/site-packages上.我检查了IDLE并且import stripe工作.如何将其包含在我的应用程序文件夹中?

python google-app-engine stripe-payments

11
推荐指数
1
解决办法
1436
查看次数

Scrapy SgmlLinkExtractor忽略允许的链接

请在Scrapy文档中查看此蜘蛛示例.解释是:

这个蜘蛛会开始抓取example.com的主页,收集类别链接和项链接,使用parse_item方法解析后者.对于每个项目响应,将使用XPath从HTML中提取一些数据,并且将使用它填充项目.

我完全复制了同一个蜘蛛,并将"example.com"替换为另一个初始URL.

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from stb.items import StbItem

class StbSpider(CrawlSpider):
    domain_name = "stb"
    start_urls = ['http://www.stblaw.com/bios/MAlpuche.htm']

    rules = (Rule(SgmlLinkExtractor(allow=(r'/bios/.\w+\.htm', )), callback='parse', follow=True), )

    def parse(self, response):
        hxs = HtmlXPathSelector(response)

        item = StbItem()
        item['JD'] = hxs.select('//td[@class="bodycopysmall"]').re('\d\d\d\d\sJ.D.')
        return item

SPIDER = StbSpider()
Run Code Online (Sandbox Code Playgroud)

但是我的蜘蛛"stb"并没有收集"/ bios /"的链接,因为它应该这样做.它运行初始URL,擦除item['JD']并将其写入文件然后退出.

为什么SgmlLinkExtractor被忽略了?在Rule读,因为它抓住了里面的语法错误Rule行.

这是一个错误吗?我的代码中有什么问题吗?除了我在每次运行中看到的一堆未处理错误外,没有任何错误.

很高兴知道我在这里做错了什么.谢谢你的任何线索.我误解了该怎么SgmlLinkExtractor办?

python web-crawler scrapy

10
推荐指数
1
解决办法
4070
查看次数

如何将此XPath表达式转换为BeautifulSoup?

在回答上一个问题时,有几个人建议我将BeautifulSoup用于我的项目.我一直在努力处理他们的文档而我无法解析它.有人可以指出我应该能够将此表达式转换为BeautifulSoup表达式的部分吗?

hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')
Run Code Online (Sandbox Code Playgroud)

以上表达来自Scrapy.我试图以应用正则表达式re('\.a\w+')td class altRow从那里得到的链接.

我也很感激指向任何其他教程或文档.我找不到任何东西.

谢谢你的帮助.

编辑: 我正在看这个页面:

>>> soup.head.title
<title>White & Case LLP - Lawyers</title>
>>> soup.find(href=re.compile("/cabel"))
>>> soup.find(href=re.compile("/diversity"))
<a href="/diversity/committee">Committee</a> 
Run Code Online (Sandbox Code Playgroud)

但是,如果你看一下页面来源"/cabel"是:

 <td class="altRow" valign="middle" width="34%"> 
 <a href='/cabel'>Abel, Christian</a> 
Run Code Online (Sandbox Code Playgroud)

出于某种原因,BeautifulSoup看不到搜索结果,但XPath可以看到它们,因为hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')捕获了"/ cabel"

编辑: cobbal:它仍然无法正常工作.但当我搜索这个:

>>>soup.findAll(href=re.compile(r'/.a\w+'))
[<link href="/FCWSite/Include/styles/main.css" rel="stylesheet" type="text/css" />, <link rel="shortcut icon" type="image/ico" href="/FCWSite/Include/main_favicon.ico" />, <a href="/careers/northamerica">North America</a>, <a href="/careers/middleeastafrica">Middle East Africa</a>, <a href="/careers/europe">Europe</a>, <a href="/careers/latinamerica">Latin America</a>, <a href="/careers/asia">Asia</a>, <a href="/diversity/manager">Diversity Director</a>] …
Run Code Online (Sandbox Code Playgroud)

python xpath beautifulsoup

10
推荐指数
2
解决办法
8887
查看次数

如何初始化空列表?

每次输入s来自表单; 在list重新初始化.如何更改代码以将每个新附加s到列表中?

谢谢.

class Test(webapp.RequestHandler):
    def get(self):

        s = self.request.get('sentence')
        list = []                                   
        list.append(s)                      
        htmlcode1 = HTML.table(list)        
Run Code Online (Sandbox Code Playgroud)

python

10
推荐指数
2
解决办法
5万
查看次数

Scrapy SgmlLinkExtractor问题

我正在尝试使SgmlLinkExtractor工作.

这是签名:

SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)
Run Code Online (Sandbox Code Playgroud)

我正在使用 allow=()

所以,我进入

rules = (Rule(SgmlLinkExtractor(allow=("/aadler/", )), callback='parse'),)
Run Code Online (Sandbox Code Playgroud)

所以,最初的网址是'http://www.whitecase.com/jacevedo/',我正在进入,allow=('/aadler',)并期望 '/aadler/'也会被扫描.但相反,蜘蛛扫描初始网址然后关闭:

[wcase] INFO: Domain opened
[wcase] DEBUG: Crawled </jacevedo/> (referer: <None>)
[wcase] INFO: Passed NuItem(school=[u'JD, ', u'Columbia Law School, Harlan Fiske Stone Scholar, Parker School Recognition of Achievement in International and Foreign Law, ', u'2005'])
[wcase] INFO: Closing domain (finished)
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

这里有没有人成功使用Scrapy谁可以帮助我完成这个蜘蛛?

感谢您的帮助.

我在下面包含了蜘蛛的代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor …
Run Code Online (Sandbox Code Playgroud)

python web-crawler scrapy

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

用于sqlite3的Windows命令提示符shell

文档声明sqlite3有一个命令行shell:"要启动sqlite3程序,只需键入"sqlite3",然后输入包含SQLite数据库的文件名." 当我尝试这个时,在Windows命令提示符中,我收到错误消息"'sqlite3'不被识别为内部或外部命令,可操作程序或批处理文件." Windows资源管理器在各个地方显示了几个"Sqlite3"文件夹:

backends(C:/Python26/Lib/site-packages/django/db)
Lib(C:/Python26)
backends(C:/Django-1.1.1/Django-1.1.1/build/lib/django/db
backends(C:/Django-1.1.1/Django-1.1.1/django/db)
Run Code Online (Sandbox Code Playgroud)

我如何访问shell,任何人都可以帮忙吗?

sqlite

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

我可以将Clojure与nginx一起使用吗?

这是一个跟进我的问题在这里.我已经设置了一个家庭服务器(只是我的其他笔记本电脑运行ubuntu和nginx),我想提供clojure文件.

我正在请求帮助以了解此过程的工作原理.对不起,我很困惑,我想我需要重新开始.我问了一个新问题,因为我想用nginx没有lein ring server,作为答案这个问题建议.

首先,我guestbook和leiningen 开始了一个项目,然后我跑了lein ring server,我看到了"Hello World" localhost:3000.据我所知,这与nginx无关!

nginx如何进入这个过程?起初我试图用nginx创建一个代理服务器,但也有效,但我不知道如何使用该设置提供clojure文件.

这是我在我的nginx.conf文件中改编的答案:

 upstream ring {
    server 127.0.0.1:3000 fail_timeout=0;
}

server {
    root /home/a/guestbook/resources/public;

    # make site accessible from http://localhost
    server_name localhost;

    location / {
        # first attempt to serve request as file
        try_files $uri $uri/ @ring;
    }

    location @ring {
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Host $http_host;
        proxy_pass http://ring;
    }

    location ~ ^(assets|images|javascript|stylesheets|system)/ {
        expires    max;
        add_header …
Run Code Online (Sandbox Code Playgroud)

clojure nginx

9
推荐指数
2
解决办法
3275
查看次数

CSV到JSON脚本

我从这里拿了这个脚本:

import csv
from itertools import izip
f = open( '/django/sw2/wkw2/csvtest1.csv', 'r' )
reader = csv.reader( f )
keys = ( "firm_url", "firm_name", "first", "last", "school", "year_graduated" )
out = []
for property in reader:
    property = iter( property )
    data = {}
    for key in keys:
        data[ key ] = property.next()
    out += [ data ]
print out
Run Code Online (Sandbox Code Playgroud)

当我在IDLE中尝试它时,我收到了错误

Traceback (most recent call last):
  File "<pyshell#13>", line 5, in <module>
    data [key] = property.next()
StopIteration
Run Code Online (Sandbox Code Playgroud)

但我试过了

print …
Run Code Online (Sandbox Code Playgroud)

python csv json

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