无法导入Scrapy

时间:2019-10-27 20:22:13

标签: python json scrapy

我尝试导入scrapy,但是导入时出现错误“无法导入scrapy” 在代码运行之前,我已经安装了scrapy 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中是否有任何错误编码?我需要提取此脚本的信息,而且我不知道其他方式

2 个答案:

答案 0 :(得分:0)

有时我的shell和我的IDE /编辑器使用的是不同的python版本。我建议检查用于执行代码的正确Python(或虚拟环境)中是否安装了scrapy。

答案 1 :(得分:0)

我强烈建议您使用虚拟环境,以免弄乱软件包。

安装虚拟环境

  

sudo pip install virtualenv

创建您的项目文件夹

  

mkdir myproject

     

cd myproject

在项目文件夹中创建虚拟环境

  

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

例如:virtualenv -p /usr/bin/python3.6 venv

激活虚拟环境

  

来源venv / bin / activate

现在,激活后继续安装所需的所有库。 前pip3安装scrapy。