как соскоблить страницу с предложениями Amazon в python - PullRequest
0 голосов
/ 18 марта 2020

Я хочу очистить страницу соглашения amazon с python и красивым супом, но при запуске кода я не получаю никакого результата, но при попытке кода на любой другой странице в amazon я получаю результаты

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

url = 'https://www.amazon.com/international-sales-offers/b/?ie=UTF8&node=15529609011&ref_=nav_navm_intl_deal_btn'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0',
           'referer': 'https://www.amazon.com/'
           }
s = requests.session()
s.headers.update(headers)
r = s.get(url)
soup = BeautifulSoup(r.content, "lxml")
for x in soup.find_all('span',{'class','a-declarative'}):
    print(x.text + "\n")

1 Ответ

1 голос
/ 19 марта 2020

Когда вы посещаете эту страницу в своем браузере, страница делает дополнительные запросы для получения дополнительной информации, затем обновляет первую страницу этой информацией. В вашем случае URL https://www.amazon.com/international-sales-offers/b/?ie=UTF8&node=15529609011&ref_=nav_navm_intl_deal_btn - это просто шаблон, и при загрузке он делает дополнительные запросы, чтобы получить информацию о сделке для заполнения шаблона.

Amazon - это популярный сайт, и люди сделали для него множество веб-скребков. Проверьте этот. . Если он не делает то, что вам нужно, просто Google github amazon scraper, и вы получите много вариантов.

Если вы все еще хотите закодировать скребок самостоятельно, начните читать по selenium. Это пакет python, имитирующий веб-браузер, позволяющий загрузить веб-страницу и все ее дополнительные запросы перед очисткой.

...