Django Python Selenium создает скриншот с неправильным размером - PullRequest
0 голосов
/ 24 апреля 2020

Мне нужно получить скриншоты URL. Скриншоты работают сами. Но есть ошибка с размерами. Когда я устанавливаю ширину и высоту окна и получаю скриншот. Скриншот сделан с неправильным размером. Например я установил размер 1000х600. И это дает мне 990x470.

Вот view.py:

def shots(request):
    x = datetime.datetime.now()
    time = x.strftime("%Y-%m-%d-%H-%M-%S")

    if request.method == 'POST' and 'url' in request.POST:
        url = request.POST.get('url', '')
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}

        width_get = request.POST.get('width', '')
        height_get = request.POST.get('height', '')
        if width_get is not None and width_get != '':
            width = width_get
        else:
            width = 1600
        if height_get is not None and height_get != '':
            height = height_get
        else:
            height = 1000

        if url is not None and url != '':

            url_parsed = urlparse(url)
            scheme = url_parsed.scheme
            netloc = url_parsed.netloc
            if netloc.startswith('www.'):
                netloc = netloc.replace('www.', '')
            image_path = "media/" + netloc + "-" + time + ".png"
            shot_path = "/media/" + netloc + "-" + time + ".png"
            path = "C:/WebDrivers/chromedriver.exe"
            driver = webdriver.Chrome(path)
            driver.set_window_size(width, height)
            driver.get(url)
            driver.save_screenshot(image_path)
            screenshot = image_path
            driver.quit()
            var_dict = {
                'screenshot': screenshot,
                'shot_path':shot_path,
                'netloc':netloc,
                }
            return render(request, 'shots.html', var_dict)
    else:
        return render(request, 'shots.html')

Вот шаблон

<div class = "container">
  <h1>Python Screenshot Generator</h1>
  <form class="example" action="{% url 'shots' %}" method="post">
    {% csrf_token %}
    <input type="text" name="url" size="50" value="{{ full_url }}" placeholder="Enter URL:">
    <button type="submit">Generate screenshot</button>
    <div class="row">
    <div class="col">
      <input type="text" name = "width" class="form-control" placeholder="ScreenShot Width">
    </div>
    <div class="col">
      <input type="text" name = "height" class="form-control" placeholder="ScreenShot Height">
    </div>
    </div>
  </form>
  {% if screenshot %}
  <h2>Screenshot for <a href="{{ netloc }}" target="_blank">{{ netloc }}</a></h2>
    <img src="{{ shot_path }}">
  {% endif %}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...