Web scraping 我的scrapy不爬网,有人能帮我吗?

Web scraping 我的scrapy不爬网,有人能帮我吗?,web-scraping,scrapy,Web Scraping,Scrapy,我试着在网站上搜刮,搜刮价格和产品ID。这是我的spider/test.py文件。但它似乎什么也没下载。我不知道为什么 from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import HtmlXPathSelector from try_yhd.items import

我试着在网站上搜刮,搜刮价格和产品ID。这是我的spider/test.py文件。但它似乎什么也没下载。我不知道为什么

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from try_yhd.items import TryYhdItem

class MySpider(CrawlSpider):
    name = "yhdspider"
    allowed_domains = ["http://www.yihaodian.com.yhcdn.cn"]
    start_urls = ['http://item.yhd.com/item/11271079',
              'http://item.yhd.com/item/2149386',
              ]

    rules = [Rule(SgmlLinkExtractor(allow=['/item/\d+']),'parse_torrent',follow = True),]
    def parse_items(self, response):
        hxs = HtmlXPathSelector(response)
        item = TryYhdItem()
       # find the price and product id.
        item['price']= hxs.select("//span[@id='current_price']").extract()[0]
        item['id']= hxs.select("//p[@class='product_id']/text()").extract()[0]
        return item
这是输出

2014-09-22 10:18:31-0500 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023
2014-09-22 10:18:31-0500 [scrapy] DEBUG: Web service listening on 127.0.0.1:6080
2014-09-22 10:18:32-0500 [yhdspider] DEBUG: Crawled (200) <GET http://item.yhd.com  /item/11271079> (referer: None)
2014-09-22 10:18:32-0500 [yhdspider] DEBUG: Filtered offsite request to 'item.yhd.com': <GET http://item.yhd.com/item/11271079>
2014-09-22 10:18:32-0500 [yhdspider] DEBUG: Crawled (200) <GET http://item.yhd.com/item/2149386> (referer: None)
2014-09-22 10:18:32-0500 [yhdspider] INFO: Closing spider (finished)
2014-09-22 10:18:32-0500 [yhdspider] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 447,
 'downloader/request_count': 2,
 'downloader/request_method_count/GET': 2,
 'downloader/response_bytes': 68145,
 'downloader/response_count': 2,
 'downloader/response_status_count/200': 2,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2014, 9, 22, 15, 18, 32, 892277),
 'log_count/DEBUG': 5,
 'log_count/INFO': 7,
 'offsite/domains': 1,
 'offsite/filtered': 2,
 'request_depth_max': 1,
 'response_received_count': 2,
 'scheduler/dequeued': 2,
 'scheduler/dequeued/memory': 2,
 'scheduler/enqueued': 2,
 'scheduler/enqueued/memory': 2,
 'start_time': datetime.datetime(2014, 9, 22, 15, 18, 31, 211841)}
2014-09-22 10:18:32-0500 [yhdspider] INFO: Spider closed (finished)
2014-09-22 10:18:31-0500[scrapy]调试:Telnet控制台监听127.0.0.1:6023
2014-09-22 10:18:31-0500[scrapy]调试:在127.0.0.1:6080上侦听Web服务
2014-09-22 10:18:32-0500[yhdspider]调试:爬网(200)(参考:无)
2014-09-22 10:18:32-0500[yhdspider]调试:过滤到'item.yhd.com'的场外请求:
2014-09-22 10:18:32-0500[yhdspider]调试:爬网(200)(参考:无)
2014-09-22 10:18:32-0500[yhdspider]信息:关闭卡盘(完成)
2014-09-22 10:18:32-0500[扬子鳄]信息:倾倒碎屑统计数据:
{'downloader/request_bytes':447,
“下载程序/请求计数”:2,
“下载器/请求\方法\计数/获取”:2,
“downloader/response_字节”:68145,
“下载程序/响应计数”:2,
“下载程序/响应状态\计数/200”:2,
“完成原因”:“完成”,
“完成时间”:datetime.datetime(2014,9,22,15,18,32892277),
“日志计数/调试”:5,
“日志计数/信息”:7,
“异地/域”:1,
“非现场/已筛选”:2,
“请求深度最大值”:1,
“响应\u已收到\u计数”:2,
“调度程序/出列”:2,
“调度程序/出列/内存”:2,
“调度程序/排队”:2,
“调度程序/排队/内存”:2,
“开始时间”:datetime.datetime(2014,9,22,15,18,31,211841)}
2014-09-22 10:18:32-0500[yhdspider]信息:十字轴关闭(完成)

修改后,我得到以下输出日志。谁能告诉我怎么了

您需要将item.yhd.com添加到允许的_域。请求被默认启用的
OffsiteMiddleware
中间件过滤为异地请求

'offsite/domains': 1,
'offsite/filtered': 2,
该中间件过滤掉主机名不在spider的allowed_domains属性中的每个请求

你有两个选择。如果spider没有定义一个allowed_domains属性,或者该属性为空,那么非现场中间件将允许所有请求


如果请求设置了dont_filter属性,即使其域未列在允许的域中,非现场中间件也将允许该请求。

谢谢。但是如何定义允许的_域属性呢?或者如何使属性为空?