我正在尝试从一个网站的几页中删除一些条目,然后放到postgres数据库中。我尝试了不同的代码,但仍然没有工作,我的数据库仍然是空的。。。你知道吗
如何将网站页面中的项目废弃到Postgres数据库? 我的代码怎么了?
我将向您展示最新版本的代码:
Myspider.py公司
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import scrapy, os, re, csv
from scrapy.spiders import CrawlSpider, Rule, Spider
from scrapy.linkextractors import LinkExtractor
from scrapy.selector import Selector
from scrapy.loader import ItemLoader
from scrapy.loader.processors import Join, MapCompose
from scrapy.item import Item, Field
from AHOTU_V2.items import AhotuV2Item
def url_lister():
url_list = []
page_count = 0
while page_count < 10:
url = 'https://marathons.ahotu.fr/calendrier/?page=%s' %page_count
url_list.append(url)
page_count += 1
return url_list
class ListeCourse(CrawlSpider):
name = 'ListeCAP_Marathons_ahotu'
start_urls = url_lister()
deals_list_xpath='//div[@class="list-group col-sm-12 top-buffer"]/a[@class="list-group-item calendar"]'
item_fields = AhotuV2Item()
item_fields = {
'nom_course': './/dl/dd[3]/text()',
'localisation' :'.//dl/dd[2]/span[1]/text()',
}
def parse_item(self, response):
selector = Selector(response)
# iterate over deals
for deal in selector.xpath(self.deals_list_xpath):
loader = ItemLoader(AhotuV2Item(), selector=deal)
# define processors
loader.default_input_processor = MapCompose(unicode.strip)
loader.default_output_processor = Join()
# iterate over fields and add xpaths to the loader
for field, xpath in self.item_fields.iteritems():
loader.add_xpath(field, xpath)
yield loader.load_item()
经过几个小时的寻找解决方案,我才意识到使用的方法是错误的,这就是蜘蛛不起作用的原因。你知道吗
MySpider.py公司
我没有看到任何规则调用
parse_item
你应该对你的类使用
Spider
,而不是CrawlSpider
。改变至
相关问题 更多 >
编程相关推荐