Веб-сайт не позволяет щелкать правой кнопкой мыши, а веб-скребок не отображает текст между тегами тела - PullRequest
3 голосов
/ 02 октября 2019

Я пытаюсь очистить веб-страницу. Тем не менее, сам веб-сайт не позволяет щелкнуть правой кнопкой мыши, чтобы проверить элемент или источник страницы. Кроме того, когда я печатаю проанализированный HTML-текст, результат содержит только теги body и не отображает информацию внутри тегов body.

from selenium import webdriver
import bs4 as bs
import urllib.request

driver = webdriver.Chrome(executable_path=r'PATH')
driver.get("website.com")

assert "Title" in driver.title

sauce = urllib.request.urlopen('website.com').read()

soup = bs.BeautifulSoup(sauce, 'html.parser')
print(soup)

Я ожидаю получить фактический HTML (в частности, HTML между телом). метки) из супа;тем не менее, я получаю только

<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>Title</title>

</head>
<body></body>
</html>

Я относительно новичок в веб-скрепинге;Однако у меня никогда не было этой проблемы раньше. Это специфично для сайта? Когда я использую расширение Chrome, я могу разрешить щелчок правой кнопкой мыши, и только после этого я могу проверить источник страницы (а также теги HTML и теги внутри тела).

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Это может не ответить на вопрос, но должно вернуть ваше контекстное меню:

driver.execute_script("""
  window.addEventListener('contextmenu', e => {
    e.stopPropagation();
    e.stopImmediatePropagation();
  }, true)
""")
0 голосов
/ 02 октября 2019

Вы можете попробовать получить информацию тега body, используя только Python / Selenium, и посмотреть, отличается ли источник страницы от того, который вы опубликовали в своем вопросе. Это поможет сузить проблему.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("website.com")

html = driver.page_source

print(html)

Если это приводит к тем же результатам, что и HTML, который вы разместили в своем вопросе, то проблема, вероятно, связана с самим сайтом, а не с вашим кодом.

...