首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

想几个关于scrapy的有关问题

2012-03-09 
想请教大家几个关于scrapy的问题最近正在学习使用scrapy抓取网页我想抓取人民网一个页面上的新闻,并且加入

想请教大家几个关于scrapy的问题
最近正在学习使用scrapy抓取网页
我想抓取人民网一个页面上的新闻,并且加入了下一页的判断,写出了如下的爬虫程序,可运行总是显示(referer: None),不知道是哪里出的问题。
还有就是按官网的示例试着抓取中文网页,输出的总是unicode代码形式,print出来也不行,然后导出到csv文件中更是如此,不知道怎么才能直接显示中文
还望指点
谢谢回帖~

Python code
#!/usr/bin/python# -*- coding: UTF-8 -*-from urlparse import urljoinfrom scrapy.selector import HtmlXPathSelectorfrom scrapy.contrib.linkextractors.sgml import SgmlLinkExtractorfrom scrapy.http import Requestfrom scrapy.spider import BaseSpiderfrom renmin.items import RenminItemclass PeopleSpider(BaseSpider):    name = 'people'    allowed_domains = ['military.people.com.cn']    start_urls = ['http://military.people.com.cn/GB/1077/52987/index.html']    def parse(self, response):        hxs = HtmlXPathSelector(response)        sites = hxs.select('//div[@class="c_c"]/a/@href').extract()        texts = hxs.select('//div[@class="c_c"]/a/text()').extract()        print texts        for site in sites:            yield Request(site, callback=self.parse_post)        page_links = hxs.select('//div[@class="c_c"]/table/tr/td/a')        for link in page_links:            if link.select('text()').extract()[0] == u'\u4e0b\u4e00\u9875':                url = link.select('@href').extract()[0]                yield Request(url, callback=self.parse)        return    def parse_post(self, response):        hxs1 = HtmlXPathSelector(response)        i = RenminItem()        i['title'] = hxs1.select("//h1[@id='p_title']/text()").extract()        i['link'] = response.url        i['cont'] = hxs1.select("//div[@id='p_content']/text()").extract()        page_links = hxs1.select("//div[@id='p_content']/center/table/tr/td/a")        for link in page_links:            if link.select('img/@src').extract()[0] == u'/img/next_b.gif':                url = link.select('@href').extract()[0]                yield Request(url, callback=self.parse_post)        yield i        return        SPIDER = PeopleSpider()


[解决办法]
请求头加上 Referer 头...
[解决办法]
不明白什么叫“输出的总是unicode代码形式”。

热点排行