Как спарсить сайт, через post запрос
Код:
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
ua = UserAgent()
def get_data():
cookies = {
'ASP.NET_SessionId': 'i1gip0fre5uzl4iqlkubv1cp',
'SLG_G_WPT_TO': 'ru',
'SLG_GWPT_Show_Hide_tmp': '1',
'SLG_wptGlobTipTmp': '1',
'ICusrcartgd': 'be6d8ad2-c52e-49b8-83b2-f384a9feaa60',
'IWusrsesckgd': 'jojhbQMjYWEdV9ohRKijJKalgxKEvPEPzVqoH/F2376n50ziaNRcMA==',
}
headers = {
'authority': 'catalog.aquamarine.kz',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="99", "Opera GX";v="85"',
'accept': 'application/json, text/javascript, */*; q=0.01',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
'x-requested-with': 'XMLHttpRequest',
'sec-ch-ua-mobile': '?0',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 OPR/85.0.4341.79',
'sec-ch-ua-platform': '"Windows"',
'origin': 'https://catalog.aquamarine.kz',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'cors',
'sec-fetch-dest': 'empty',
'referer': 'https://catalog.aquamarine.kz/catalog/index.aspx',
'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
# Requests sorts cookies= alphabetically
# 'cookie': 'ASP.NET_SessionId=i1gip0fre5uzl4iqlkubv1cp; SLG_G_WPT_TO=ru; SLG_GWPT_Show_Hide_tmp=1; SLG_wptGlobTipTmp=1; ICusrcartgd=be6d8ad2-c52e-49b8-83b2-f384a9feaa60; IWusrsesckgd=jojhbQMjYWEdV9ohRKijJKalgxKEvPEPzVqoH/F2376n50ziaNRcMA==',
}
data = {
'msearch': '',
}
response = requests.post('https://catalog.aquamarine.kz/catalog/products.ashx?rnd=191288177&q=&spec=&mip=317&map=7777%20777&mippg=161&mappg=5466%20222&miw=0.14&maw=137.74&miq=1&maq=241&miprcs=999999.999&maprcs=0&page=2&sort=art-down&view=1&brid=7,', cookies=cookies, headers=headers, data=data)
soup = BeautifulSoup(response.text, 'lxml')
with open('data.html', 'w') as f:
f.write(response.text)
links = soup.find_all('a', class_='\"pfancy')
print (links)
def main():
get_data()
if __name__ == '__main__':
main()
На выходе я получаю файл с вёрсткой, но это вёрстка как-то закодирована. Вот фрагмент:
<a href="\"/catalog/item.ashx?id=127551&brids=7&nocache=637884809365866149\"" class="\"pfancy" pfancy.iframe="" plink\"=""><img src="\"/catalog/image.ashx?pid=127551&avids=\"" title="\"970469к\""></a>
Везде расставлены обратные слэши, из-за чего как я понимаю мне не удаётся спарсить данные. Я пытался вывести links по разному, добавляя разные классы, но ничего не вышло. Есть ли какие-то способы чтобы это спарсить?
Ответы (1 шт):
Автор решения: RuCat
→ Ссылка
Чтобы убрать слэши достаточно прописать response.text.replace('\\','')