报废网站时,我收到服务器的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)
但我仍然被重定向.这是我为了让这个中间件工作所必须做的吗?我错过了什么吗?
我试图从记事本++中的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?
我简单无法搞清楚!:(我正在从一个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) 我只是想让我的分页脚本通过树枝工作.当我将我的php变量的结果作为twig变量{{pagination}}发送到twig时,它显示原始的html代码:
Page <strong>3</strong> of 4 <a href="/search.php?pn=2"> Back</a>
<span class="paginationNumbers"> <a href="/search.php?pn=2">2</a>
<span class="pagNumActive">3</span> <a href="/search.php?pn=4">4</a>
</span> <a href="/search.php?pn=4"> Next</a>
Run Code Online (Sandbox Code Playgroud)
我现在如何渲染这些HTML标签?