我正在尝试使用Scrapy 0.20.2从http://www.dmoz.org/Computers/Programming/Languages/Python/Books这个页面进行爬取。
我已经成功获取了所需的信息并进行了排序...
但是,我的结果中仍然包含\r、\t和\n。例如,以下是一个JSON:{"desc": ["\r\n\t\t\t\r\n ", " \r\n\t\t\t\r\n - 本书的主要目标是使用Python促进面向对象设计,并说明新兴的面向对象设计模式的使用。\r\n本书的次要目标是及时呈现数学工具。分析技术和证明按需要和在适当的上下文中呈现。\r\n \r\n "], "link": ["http://www.brpreiss.com/books/opus7/html/book.html"], "title": ["使用面向对象设计模式的Python数据结构和算法"]},
数据是正确的,但我不想在结果中看到\t、\r和\n。
我的爬虫代码如下:
from scrapy.spider import BaseSpider
from scrapy.selector import Selector
from dirbot.items import DmozItem
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
]
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//ul[@class="directory-url"]/li')
items = []
for site in sites:
item = DmozItem()
item['title'] = site.xpath('a/text()').extract()
item['link'] = site.xpath('a/@href').extract()
item['desc'] = site.xpath('text()').extract()
items.append(item)
return items
site.xpath('a/text()').extract().rstrip()
时,结果为空。 - Marco Dinatsoliitem['desc'] = map(unicode.strip, site.xpath('a/text()').extract())
- paul trmbrth