Bs4 парсинг страницы и получение html кода
Как я могу получить html код с страницы - https://iplogger.ru/logger/8az3yn24Aic6/ ?
При отправке запроса и попытки получения html, в print получаю только это:
<div id="statdata">
<div class="loader">Идет загрузка данных, подождите...</div>
<div id="statcontent"></div>
</div>
Отправляю запрос через aiohttp ClientSession на python:
from bs4 import BeautifulSoup as BS
from aiohttp import ClientSession
import asyncio
async def checker():
async with ClientSession() as session:
async with session.post('https://iplogger.ru/logger/8az3yn24Aic6/') as response:
html_code = BS(await response.text(), 'lxml').find('div', id='statdata')
print(html_code)
asyncio.run(checker())
Для получения html с страницы рассматриваю только обычный requests, aiohttp, bs4, requests-html ( для подгрузки JavaScript на странице ), без selenium..
Ответы (2 шт):
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://iplogger.ru/logger/8az3yn24Aic6/')
r.html.render(timeout=10)
print(r.html.html)
только там согласие на обработку получается, но страница получена upd: ну и если надо, таймаут побольше выставить надо, а то мне 8(дефолт) секунд не хватило, хз
Подгружаются все нужные вам данные по пути https://iplogger.ru/ajax/ .
Куки возможно придется менять в будущем, а именно PHPSESSID. Если захотите парсить другие страницы просто меняете id в теле запроса(переменная data), откуда брать его показываю на скрине
.
import requests
from requests.structures import CaseInsensitiveDict
import json
url = "https://iplogger.ru/ajax/"
headers = CaseInsensitiveDict()
headers["Host"] = "iplogger.ru"
headers["Connection"] = "close"
headers["Pragma"] = "no-cache"
headers["Cache-Control"] = "no-cache"
headers["sec-ch-ua"] = '"Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"'
headers["Accept"] = "application/json, text/javascript, */*; q=0.01"
headers["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8"
headers["X-Requested-With"] = "XMLHttpRequest"
headers["sec-ch-ua-mobile"] = "?0"
headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"
headers["sec-ch-ua-platform"] = '"Windows"'
headers["Origin"] = "https://iplogger.ru"
headers["Content-Length"] = "111"
headers["Sec-Fetch-Site"] = "same-origin"
headers["Sec-Fetch-Mode"] = "cors"
headers["Sec-Fetch-Dest"] = "empty"
headers["Referer"] = "https://iplogger.ru/logger/8az3yn24Aic6/"
headers["Accept-Encoding"] = "gzip, deflate"
headers["Accept-Language"] = "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"
headers["Cookie"] = "PHPSESSID=vro4sclrbsahlq7lpevh4atou2; auth_code=NO_AUTH; eid=8az3yn24Aic6; clhf03028ja=109.252.64.184; page=1; _ygid=1845248184; timezone=Europe%2FMoscow; _ga=GA1.2.492111519.1631970484; _gid=GA1.2.1504998125.1631970484; _lr_geo_location=RU; __gpi=00000000-0000-0000-0000-000000000000&aXBsb2dnZXIucnU=&Lw==; cookies-consent=1; __gads=ID=895c28a496dc2c41:T=1631970484:S=ALNI_MbhUj5qVWyyKtIuLTc0Ka3kD0t50Q; confcode=5aaans2ff57k0sa75bz2ytky; cto_bundle=ICeiS19IWTUyRlVReXVTOE1hTU5aJTJCVlpYJTJCSUNIRzBLUldsMEtUdHZUNEN3YXFSaklCbjhGeDQ0cnlXZHlXUmgxY2FDc2Y2TzNDUjdRREhFZGElMkZLWnJZYjMzQTMwZlVJWEdJJTJGZEI5N2NJQ0djTUsybXJ1VllTcFlQR2t2VXowVWNmbVhYeGp5MUxWZmFac2hLVks0d1VwSVpXdyUzRCUzRA"
data = "a=stat&go=load&page=1&id=8az3yn24Aic6&unique=0&nobots=0&sd=2021-07-31&ed=2021-09-18&limit=20&sort=date&ord=desc"
proxies = {'https': 'https://127.0.0.1:8080'}
resp = requests.post(url, headers=headers, data=data)
print(resp.status_code)
a = json.loads(resp.content.decode('utf-8'))
print(a['content'])