Ошибка красивого супового модуля (html parser) - PullRequest
0 голосов
/ 27 августа 2018

Я использую Beautifulsoup, чтобы узнать количество страниц на веб-странице, однако, когда я пишу свой код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import requests
import BeautifulSoup


soup = BeautifulSoup(response.text)
pages = soup.select('div.pagination a')

a = int(pages[-2].text)
print a

выдает следующую ошибку:

Traceback (последний вызов был последним): File «C: /Users/HangaarLab/Desktop/sonartik/sonartik.py», строка 13, в soup = BeautifulSoup (response.text) TypeError: объект 'module' не вызывается

На другом компьютере код запускается, но выдает следующее предупреждение: UserWarning: Парсер явно не указан, поэтому я использую лучший доступный анализатор HTML для этой системы ("html.parser"). Это обычно не проблема, но если вы запускаете этот код в другой системе или в другой виртуальной среде, он может использовать другой парсер и ведут себя по-разному. Код, вызвавший это предупреждение, находится в строке 14 файл C: /Users/Ar elik/Desktop/sikayet/klo.py. Чтобы избавиться от этого предупреждение, передайте дополнительный аргумент 'features = "html.parser"' Конструктор BeautifulSoup.

Мне нужен код для работы на компьютере, который выдает первую ошибку. Что мне делать?

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Вам придется импортировать BeautifulSoup из пакета bs4

import urllib2
import requests
from bs4 import BeautifulSoup #here
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get("https://www.sikayetvar.com/onedio", headers = headers)

soup = BeautifulSoup(response.text)
pages = soup.select('div.pagination a')

a = int(pages[-2].text)
print a
0 голосов
/ 27 августа 2018

BeautifulSoup является частью пакета bs4. Чтобы исправить свой код, просто сделайте:

pip install bs4 

в командной строке и измените ваш импорт на:

from bs4 import BeautifulSoup
0 голосов
/ 27 августа 2018

Обновление

import BeautifulSoup

до

from bs4 import BeautifulSoup

Ex:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get("https://www.sikayetvar.com/onedio", headers = headers)

soup = BeautifulSoup(response.text, "html.parser")   #Use a parser to fix second error warning 
pages = soup.select('div.pagination a')

a = int(pages[-2].text)
print a
...