小编mrk*_*rki的帖子

如何在scrapy中处理302重定向

报废网站时,我收到服务器的302响应:

2014-04-01 21:31:51+0200 [ahrefs-h] DEBUG: Redirecting (302) to <GET http://www.domain.com/Site_Abuse/DeadEnd.htm> from <GET http://domain.com/wps/showmodel.asp?Type=15&make=damc&a=664&b=51&c=0>
Run Code Online (Sandbox Code Playgroud)

我想向GET网址发送请求,而不是重定向.现在我找到了这个中间件:

https://github.com/scrapy/scrapy/blob/master/scrapy/contrib/downloadermiddleware/redirect.py#L31

我将此重定向代码添加到我的middleware.py文件中,然后将其添加到settings.py中:

DOWNLOADER_MIDDLEWARES = {
 'street.middlewares.RandomUserAgentMiddleware': 400,
 'street.middlewares.RedirectMiddleware': 100,
 'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}
Run Code Online (Sandbox Code Playgroud)

但我仍然被重定向.这是我为了让这个中间件工作所必须做的吗?我错过了什么吗?

python scrapy http-status-code-302

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

正则表达式删除双引号notepad ++之间的逗号

我试图从记事本++中的csv文件中删除双引号内的逗号,这就是我所拥有的:

1070,17,2,GN3-670,"COLLAR B, M STAY","2,606.45"
Run Code Online (Sandbox Code Playgroud)

我需要这个:

1070,17,2,GN3-670,"COLLAR B M STAY","2606.45"
Run Code Online (Sandbox Code Playgroud)

我想用reg exp来使用记事本查找/替换选项.图案.我尝试了所有类型的组合,但没有设法做到:(该文件包含100万行.

整个今天我不再确定一个简单的正则表达式可以做什么?也许我应该用脚本... python?

regex notepad++

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

python和scrapy编码问题

我简单无法搞清楚!:(我正在从一个utf-8编码的站点中删除数据,这至少是它所说的:

Content-Type: text/html;charset=utf-8
Run Code Online (Sandbox Code Playgroud)

我得到一个常规unicode字符串列表与XPath选择器extract()调用:

item['city']= element.select('//div[@id="bubble_2"]/div/text()').extract()
Run Code Online (Sandbox Code Playgroud)

这是清单:

[u'Westbahnhofstr.\xa010', u'72070\xa0T\xfcbingen']
Run Code Online (Sandbox Code Playgroud)

现在我将列表加入一个unicode字符串:

item['city']= "".join(element.select('//div[@id="bubble_2"]/div/text()').extract())
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好:

u'Beim Nonnenhaus\xa0672070\xa0T\xfcbingen'
Run Code Online (Sandbox Code Playgroud)

当我尝试将此unicode字符串输出到屏幕(打印)或文件(写入)时出现问题.无论我尝试什么,它都会返回一个错误(http://pastebin.com/51DkX2R2):

exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in   position 11: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我在输出之前已经将unicode编码为字节串:

item['city'].encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

这是我的pipeline.py以及我如何使用它来打开和写入我的cvs:

import csv
import items
import urlparse
import codecs

class DepostPipeline(object):
    def __init__(self):
        self.modelsCsv = csv.writer(codecs.open('Dees.csv', mode='w',encoding='utf-8'))
        self.modelsCsv.writerow(['city'])

def process_item(self, item, spider):
    if isinstance(item, items.DetailsItem): 
        item['city'] = item['city'].encode('utf-8')

        self.modelsCsv.writerow([item['city']]) 
        return item
Run Code Online (Sandbox Code Playgroud)

最奇怪的是我的系统(Windows上的python)完美地处理unicode字符串:

C:\Console2>python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on …
Run Code Online (Sandbox Code Playgroud)

python unicode encoding utf-8 scrapy

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

树枝模板 - 如何在树枝模板中渲染html

我只是想让我的分页脚本通过树枝工作.当我将我的php变量的结果作为twig变量{{pagination}}发送到twig时,它显示原始的html代码:

Page <strong>3</strong> of 4&nbsp; &nbsp; &nbsp; &nbsp; <a href="/search.php?pn=2"> Back</a> 
<span class="paginationNumbers">&nbsp; <a href="/search.php?pn=2">2</a> &nbsp;&nbsp; 
<span class="pagNumActive">3</span> &nbsp;&nbsp; <a href="/search.php?pn=4">4</a> &nbsp;
</span>&nbsp; <a href="/search.php?pn=4"> Next</a> 
Run Code Online (Sandbox Code Playgroud)

我现在如何渲染这些HTML标签?

html render twig

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