@jKEeY

Как убрать не нужные символы в строке?

Я написал парсер с помощью silenium и tesseract
При попытке вывести переменную image_link вместе с числами у меня выводится и не нужные символы
Можно ли их убрать и вывести только числа ?
from selenium import webdriver
from time import sleep
from PIL import Image
from pytesseract import image_to_string

class Bot_dzen:
	def __init__(self):
		self.driver = webdriver.Firefox(executable_path='C:\\Users\\ilya_pc\\Documents\\gecko\\geckodriver.exe')
		self.navigate()

	def views_recon(self):
		image = Image.open('views.gif')
		image_link = image_to_string(image).split('@ ')
		views_dzen = int(image_link[0])
		views_dzen_2 = int(image_link[1])
		views_dzen_3 = int(image_link[2])

	def crop(self, location, size):
		image = Image.open('dzen_pars.png')

		x =location['x']
		y = location['y']
		width = size['width']
		height = size['height']

		image.crop((x, y, x+width, y+height)).save('views.gif')

		self.views_recon()

	def take_screen(self):
		self.driver.save_screenshot('dzen_pars.png')

	def navigate(self):
		self.driver.get('https://zen.yandex.ru/media/id/5a9d345c1aa80c262cd25c42/3-ujasnye-oshibki-v-otjimaniiah-meshaiuscie-rostu-grudi-5aa7c0739b403cd7a6cc68f4')
		views = self.driver.find_element_by_xpath('/html/body/article/div/div[2]/div')

		sleep(3)

		self.take_screen()

		location = views.location
		size = views.size

		self.crop(location, size)

def main():
	b = Bot_dzen()

if __name__ == '__main__':
	main()


5ab016d60b67f987816271.png
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 3
@val_vp
Илья, вечер добрый
Есть вопрос - цель скрипта получить числа именно из изображения view.gif ?

если нет - то получить искомые числа можно прямо из сайта и тогда не будет проблемы "битого" символа.

если всё же нужно парсить image, то есть пара вариантов:
1) Поможет если валился код на вызове views_dzen = int(image_link[0]) ?
в методе crop попробуйте горизонтально кропнуть побольше,
image.crop((x + <ширина иконки глаз>, y, x + width - <ширина иконки глаз>, y + height)).save('views.gif')

2) regex. после image_link = image_to_string(image) попробуйте выбрать группы цифр (\d+) из image_link
Ответ написан
@jKEeY Автор вопроса
Там просмотры подгружаются js, если я не ошибаюсь, а как взаимодействовать selemium и js я не знаю, мог ли бы вы подсказать ))
Ответ написан
Комментировать
JabbaHotep
@JabbaHotep
Пытаюсь минимизировать ручную работу
Зачем так сложно и негуманно к себе и яндексу. Менее накладнее забрать отсюда:
https://zen.yandex.ru/media-api/publication-view-s...

без селениума, используйте например urllib2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы