html.fromstring (), показывающий «модуль не найден» в VS2017 - PullRequest
0 голосов
/ 20 января 2019

Мы работаем в python над школьным проектом с моим другом. Наша работа состоит в том, чтобы сделать небольшой отрывок от популярного веб-сайта по продаже автомобилей (http://otomoto.pl)) и создать несколько графиков по этой теме. Я использую VS 2017, в то время как друг использует VS Code. У нас обоих общий код через github:

import requests
from lxml import html
from Models.Car import *

class DataPicker():

    url = 'https://www.otomoto.pl/osobowe/?page='
    htmlElement = ""
    pageQuantity = 40
    articlesPerSite = 32

    def main(self):
            for pageNumber in range(1, self.pageQuantity):
                    self.setHtmlElementByPage(pageNumber)
                    for article in range(1, self.articlesPerSite):
                            model = self.getModel(article)
                            year = self.getYear(article)
                            mileage =self.getMileage(article)
                            price = self.getPrice(article)
                            singleCarModel = Car(model, year, mileage, price)
                            print(self.showCarProperties(singleCarModel))

    def getModel(self, articleNumber):
            model = self.htmlElement.xpath("/html/body/div[4]/div[2]/section/div[2]/div[1]/div/div[1]/div[5]/article[" + str(articleNumber) + "]/div[2]/div[1]/h2/a/text()")
            return model[0]

    def getYear(self, articleNumber):
            year = self.htmlElement.xpath("/html/body/div[4]/div[2]/section/div[2]/div[1]/div/div[1]/div[5]/article[" + str(articleNumber) + "]/div[2]/ul/li[1]/span/text()")
            return year[0]

    def getMileage(self, articleNumber):
            mileage = self.htmlElement.xpath("/html/body/div[4]/div[2]/section/div[2]/div[1]/div/div[1]/div[5]/article[" + str(articleNumber) + "]/div[2]/ul/li[2]/span/text()")
            return mileage[0]

    def getPrice(self, articleNumber):
            price = self.htmlElement.xpath("/html/body/div[4]/div[2]/section/div[2]/div[1]/div/div[1]/div[5]/article[" + str(articleNumber) + "]/div[2]/div[2]/div/span[1]/text()")
            return price[0]

    def setHtmlElementByPage(self, pageNumber):
            currentUrl = self.url + str(pageNumber)
            page = requests.get(currentUrl)
            self.htmlElement = html.fromstring(page.content)

    def showCarProperties(self, singleCarModel):
            return "Model : " + str(singleCarModel.model) + "\nYear : " + str(singleCarModel.year) + "\nMileage : " + str(singleCarModel.mileage) + "\nPrice : " + str(singleCarModel.price) + "\n\n"

if __name__ == '__main__':
DataPicker().main()

Хотя все работает нормально под VSC друга, я получаю сообщение об ошибке: из lxml import html - сбой загрузки DLL: модуль не найден

Я попытался удалить и установить lxml снова через pip, но ничего не изменилось. Я что-то здесь не так делаю или мне не хватает некоторых файлов?

Журнал ошибок:

Сообщение = Ошибка загрузки DLL: Nie można odnaleźć określonego modułu. Источник = Stoлад стосу: Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap>", строка 219, в _call_with_frames_removed Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap_external>", строка 728, в файле exec_module Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ ", строка 677, в _load_unlocked Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap>", строка 967, в _find_and_load_unlocked Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap>", строка 983, в _find_and_load Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap>", строка 219, в _call_with_frames_removed Файл "C: \ users \ crush \ source \ repos \ karmele-on \ pythonproject.vs \ karmele-on \ pythonproject \ <замороженный importlib._bootstrap>", строка 1043, в _handle_fromlist Файл "C: \ Users \ crush \ source \ repos \ karmele-on \ PythonProject.vs \ karmele-on \ PythonProject \ DataPicker.py", строка 3, в из lxml import html

...