0
のためにあなたを求めているし、可能な場合は、タイトル情報、説明、画像や曲用を抽出するために、各製品を可決しました。私は電子商取引</p> <p>クロールサイトから製品を抽出しようとする私のクモscrapy
しかし、私のスパイダーは動作しません。
CrawlSpider documentationで警告ボックスがあります:
import smtplib
import urlparse
from scrapy import signals
from scrapy.http import Request
from scrapy.loader import ItemLoader
from scrapy.spiders import CrawlSpider
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from w3lib.html import replace_escape_chars, remove_tags
from scrapy.loader.processors import Compose, MapCompose
from emmiScraper.items import EmmiscraperItem
class EmmiSpider(CrawlSpider):
name = 'emi'
allowed_domains = ['adns-grossiste.fr']
start_urls = ['http://adns-grossiste.fr/95-joyetech']
rules = (
Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=()), callback="parse", follow= True),
)
def parse(self, response):
"""Yields url for every item currently available on the site, and
transports every product name to parse_item method.
@url http://emmi.rs/konfigurator /proizvodi.10.html?advanced_search=1&productTitle=&x=0&y=0
@scrapes urls products
"""
urls = response.xpath('//*[@id="center_column"]/ul/li/div/div[2] /h5/a/@href').extract()
products = response.xpath('//*[@id="center_column"]/ul/li/div/div[2]/h5/a/text()').extract()
for url, product in zip(urls, products):
yield Request(urlparse.urljoin(response.url, url),
callback=self.parse_item,
meta={'product': product}
)
def parse_item(self, response):
"""Returns fields: url_of_item, product, img_url, description, and price."""
l = ItemLoader(item=EmmiscraperItem(), response=response)
l.default_output_processor = MapCompose(lambda v: v.strip(), replace_escape_chars)
l.add_value('url_of_item', response.url)
l.add_value('product', response.meta['product'])
l.add_xpath('img_url', '//*[@id="bigpic"]/@src')
l.add_xpath('description', '//*[@id="short_description_content"]/p[1]/span/text()')
l.add_xpath('price', '//*[@id="our_price_display"]/text()')
return l.load_item()
* "...私のスパイダーは動作しません..." * - あなたの問題がより具体的になってください。 – Filburt
あなたの返信ありがとうございました スクリプトは部分を削るためにうまくいきましたが、私はすべてのサイトをクロールできるようにルールを追加しましたが、それ以上機能しています。 –