@jjhg

Как спарсить все страницы ТП Стима?

При попытке спарсить следующие страницы ТП, возникает проблема, что парсит все время одно и тоже.
Для примера:
https://steamcommunity.com/market/search?q=&catego...
Есть первая страница, с неё я спарсил названия предметов и цены.
Теперь беру следующую страницу
https://steamcommunity.com/market/search?q=&catego...
и при попытке парсинга, оно мне парсит тоже самое, что и с первой страницы.
Пробовал и через params передавать, но тоже ничего не получилось
Сам код:
import requests
from bs4 import BeautifulSoup
import math
#ссылка на 1 страницу ТП
URL='https://steamcommunity.com/market/search?q=&category_570_Hero%5B%5D=any&category_570_Slot%5B%5D=any&category_570_Type%5B%5D=any&category_570_Quality%5B%5D=tag_strange&appid=570#p1_popular_desc'
HEADERS={'User-Agent': 'Mozilla/5.0', 'accept': '*/*'}

def get_html(url,params=None):
    r=requests.get(url,headers=HEADERS,params=params)
    return r
def get_pages_count(html):
    soup=BeautifulSoup(html,'html.parser')
    pagination=soup.find('span',id='searchResults_total').get_text()
    pagination=math.ceil(int(pagination.replace(',',''))/10)
    return pagination 
def get_content(html):
    soup=BeautifulSoup(html,'html.parser')
    items=soup.find_all('a',class_='market_listing_row_link')
    sk=[]
    for item in items:
        sk.append({
            'name': item.find('span',class_='market_listing_item_name').get_text(),
            'link': item.attrs['href'],
            'price': item.find('span',class_='market_table_value normal_price').find('span',class_='normal_price').get_text()
        })
    return sk
def parse():
    html=get_html(URL)
    tempURL=URL
    if html.status_code==200:
        sk=[]
        pages_count=get_pages_count(html.text)
        for page in range(1,pages_count+1):
            tempURL=tempURL[0:tempURL.find("#p")]
            tempURL+=f'#p{page}_popular_desc'
            html=get_html(tempURL)
            sk.extend(get_content(html.text))
  • Вопрос задан
  • 309 просмотров
Пригласить эксперта
Ответы на вопрос 1
@justabit
Тебе нужны просто все итемы или ты цены хочешь парсить?!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы