मैं http://www.just- से रेस्तरां के नाम और पते को स्क्रैप करने का प्रयास कर रहा हूं। Eat.co.uk/belfast-takeaway वेबपेज। अब तक, मेरे सीएसवी आउटपुट में एक पंक्ति पर सभी नाम और एक पंक्ति पर सभी पते हैं। मैं प्रति नाम एक पंक्ति और प्रति पता एक पंक्ति प्राप्त करने का प्रयास कर रहा हूं।

नीचे मेरी मकड़ी है:

import scrapy

from justeat.items import DmozItem

class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["just-eat.co.uk"]
start_urls = ["http://www.just-eat.co.uk/belfast-takeaway",]

def parse(self, response):
    for sel in response.xpath('//*[@id="searchResults"]'):
        item = DmozItem()
        item['name'] = sel.xpath('//*[@itemprop="name"]').extract()
        item['address'] = sel.xpath('//*[@class="address"]').extract()
        yield item

और नीचे मेरी वस्तु है:

import scrapy

class DmozItem(scrapy.Item):
name = scrapy.Field()
address = scrapy.Field()

मैं तब उपयोग करता हूँ

scrapy crawl dmoz -o items.csv

मेरा कोड चलाने के लिए।

क्या कोई मुझे मेरी कोडिंग के साथ सही रास्ते पर ला सकता है?

0
nevster 14 मार्च 2016, 00:22

1 उत्तर

सबसे बढ़िया उत्तर

हेयर यू गो :)

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import scrapy
from justeat.items import DmozItem

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    allowed_domains = ["just-eat.co.uk"]
    start_urls = ["http://www.just-eat.co.uk/belfast-takeaway", ]

    def parse(self, response):
        for sel in response.xpath('//*[@id="searchResults"]'):
            names = sel.xpath('//*[@itemprop="name"]/text()').extract()
            names = [name.strip() for name in names]
            addresses = sel.xpath('//*[@class="address"]/text()').extract()
            addresses = [address.strip() for address in addresses]
            result = zip(names, addresses)
            for name, address in result:
                item = DmozItem()
                item['name'] = name
                item['address'] = address
                yield item
1
MetalloyD 14 मार्च 2016, 01:10