Невозможно импортировать Scrapy - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь импортировать scrapy, но у меня возникает ошибка при импорте. «Невозможно импортировать scrapy». Я установил scopy pip и python, я добавил декодированный Json до запуска кода.

# import sys
# reload(sys)
# sys.setdefaultencoding('utf8')
import json
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.exceptions import CloseSpider
from mercado.items import MercadoItem
from PIL import Image



class MercadoSpider(CrawlSpider):
    name = 'mercado'
    item_count = 0
    allowed_domain = ['https://www.qdq.com/']
    start_urls = ['https://www.qdq.com/search?location=Madrid%20%28provincia%29&query=clinicas%20dentales&ine_code=28000000000&latitude=40.4950678634&longitude=-3.7169852555&kind=P&province=Madrid&page=1']

    rules = {
        # Para cada item
        Rule(LinkExtractor(allow = (), restrict_xpaths = ('/html/body/div[1]/div/div/div[1]/main/div/div/div/div[2]/div[3]/ul/li[8]/@href'))),
        Rule(LinkExtractor(allow =(), restrict_xpaths = ('//a[@class="business-card-link"]')),
            callback = 'parse_item', follow = False)
    }

    def parse_item(self, response):
        ml_item = MercadoItem()
        #info de producto
        ml_item['nombre'] = response.xpath('//h1[@class="title"]/text()').extract()
        ml_item['web'] = response.xpath('/html/body/div[1]/div/div/div[1]/main/div/div[1]/div[2]/div[1]/div/div[4]/a/@href').extract()
        script_data = response.xpath('string(/html/head/script[3]/text()').extract()
        decoded_data = json.loads(script_data)
        ml_item['datos'] = decoded_data["telephone"]
        ml_item['direccion'] = response.xpath('/html/body/div[1]/div/div/div[1]/main/div/div[1]/div[2]/div[1]/div/span[2]/text()').extract()

        self.item_count += 1
        if self.item_count > 5:
            raise CloseSpider('item_exceeded')
        yield ml_item

Любая ошибка в json dcoded? Мне нужно извлечь информацию для этого скрипта, и я не знаю другого способа

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Я настоятельно рекомендую вам использовать виртуальные среды, чтобы не связываться с пакетами.

Установка виртуальной среды

sudo pip install virtualenv

Создание папки проекта

mkdir myproject

cd myproject

создать виртуальную среду в папке вашего проекта

virtualenv -p / path / to / your / python venv

Пример: virtualenv -p /usr/bin/python3.6 venv

Активировать виртуальный env

source venv / bin / activit

Теперь продолжайте дальшеустановить все библиотеки, которые вы хотите после активации. Ex pip3 установить scrapy.

0 голосов
/ 29 октября 2019

Иногда моя оболочка и мой IDE / редактор используют разные версии Python. Я предлагаю проверить, установлена ​​ли scrapy в правильном питоне (или виртуальной среде), который вы используете для выполнения кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...