HTML содержит сценарий Java.Как извлечь из него HTML-теги - PullRequest
0 голосов
/ 07 июля 2019

Я должен загрузить все HTML ссылки URL. Но я не получаю никаких тегов HTML. Вместо этого я получил только эти строки.

<!doctype html>
<html lang="en">
<head><meta charset="utf-8">  
<meta name="viewport" content="width=device-width, initial-scale=1">    <title></title>
 <link href="/github-user-search/app.bundle.562f293b75a96de878ab.css" rel="stylesheet"></head><body>
 <div id="root"></div>
 <script type="text/javascript" src="/github-user-search/app.bundle.562f293b75a96de878ab.js"></script></body>
 </html>

import requests
import urllib.request
import time
from bs4 import BeautifulSoup


url ='https://simonsmith.github.io/github-user-search/#/search?per_page=42&page=1&q=Ben%20Newman'
response = requests.get(url)
print(response.content)
soup = BeautifulSoup(response.text, 'html.parser')
soup.findAll('a')

1 Ответ

0 голосов
/ 07 июля 2019

Когда вы делаете запрос к вышеуказанному URL, содержимое загружается асинхронно с помощью javascript, поэтому при использовании содержимого вы не сможете удалить содержимое, загруженное асинхронно. Вам нужно подождать, пока содержимое загрузится, прежде чем выполнять синтаксический анализ,Я бы порекомендовал использовать Phantom JS / Puppeteer, чтобы дождаться загрузки динамического контента, а затем очистить его, дождаться загрузки контента, используя jquery, подобный приведенному ниже, который ожидает загрузки сведений о пользователе на страницу, а затем продолжить сизвлечение данных

$('*[class^="User_"]')
...