Я работаю над проектом по очистке веб-страниц. В этом проекте я пытаюсь очистить все ссылки на продукты на определенной странице в Amazon. этот процесс будет повторяться столько раз, сколько потребуется, и очистить несколько страниц от Amazon.
Вот мой код на данный момент
def scrape_pages(headers, product, num_of_pages):
product_links = []
for page in range(1, num_of_pages+1):
url = f'https://www.amazon.com/s?k={product}&page={page}&ref=nb_sb_noss'
print(url)
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, features="lxml")
data = soup.findAll('h2', attrs={'class':'a-size-mini'})
for i in data:
links = i.findAll('a')
for a in links:
product_links.append(f"https://www.amazon.com{a['href']}")
print('TOTAL NUMBER OF PRODUCTS LINKS SCRAPPED: ', len(product_links))
return product_links
В приведенном выше коде я пытаюсь очистить ссылки внутри всех тегов h2
на странице. Я использую пользовательский агент, чтобы сделать очистку возможной.
Моя проблема в том, что этот код не запускается все время. Иногда он очищает некоторые ссылки, а иногда и не очищает никакие ссылки.
На каждой странице amazon перечислено около 48 продуктов. Если бы мне пришлось очистить 5 страниц, то список product_links
должен содержать где-то около 240 ссылок. но я провел несколько тестов, и это всегда меньше 200, а иногда и 0.
Я хочу знать, что я делаю неправильно
К вашему сведению, это пользовательский агент, который я использую
{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}