Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. import requests, pprint, json
  2. from bs4 import BeautifulSoup
  3. from peewee import *
  4.  
  5. # MySQL Connect
  6. db = MySQLDatabase('steam', user='root', password='toor', host='localhost', charset='utf8')
  7.  
  8. # Model
  9. class BaseModel(Model):
  10.     class Meta:
  11.         database = db
  12.  
  13. class Games(BaseModel):
  14.     name = CharField(max_length=255)
  15.  
  16. class Images(BaseModel):
  17.     small   = CharField(max_length=255)
  18.  
  19. class Items(BaseModel):
  20.     name    = CharField(max_length=255)
  21.     game_id = IntegerField()
  22.     image   = IntegerField()
  23.     link    = CharField(max_length=255)
  24.     price   = CharField(max_length=255)
  25.  
  26. # Create the tables.
  27. db.create_tables([Games, Images, Items], safe=True)
  28.  
  29. pp = pprint.PrettyPrinter(indent=4)
  30.  
  31. for page in xrange(1, 24617):
  32.     r = requests.get('https://steamcommunity.com/market/search/render/?query=&start=%s&count=10&search_descriptions=0&sort_column=popular&sort_dir=desc' % page * 10)
  33.  
  34.     print ' [!] Page %s of %s' % (page, '24617')
  35.  
  36.     soup = BeautifulSoup(json.loads(r.text)['results_html'], 'html.parser')
  37.  
  38.     items = soup.find_all('a', class_ = 'market_listing_row_link')
  39.  
  40.     for item in items:
  41.         data = {}
  42.  
  43.         data['name']  = item.find('span', class_ = 'market_listing_item_name').get_text()
  44.         data['game']  = item.find('span', class_ = 'market_listing_game_name').get_text()
  45.         data['link']  = item['href']
  46.         data['img']   = item.find('img', class_ = 'market_listing_item_img')['src']
  47.         data['price'] = item.find('span', class_ = 'sale_price').get_text()
  48.  
  49.         # game
  50.         game, created = Games.get_or_create(name=data['game'])
  51.         game = game or created
  52.  
  53.         if not created == None:
  54.             print ' [!] New game added "%s"' % data['game']
  55.  
  56.         # image
  57.         image = Images()
  58.         image.small = data['img']
  59.         image.save()
  60.  
  61.         # item
  62.         newItem = Items()
  63.         newItem.name = data['name']
  64.         newItem.game_id = game.id
  65.         newItem.image = image.id
  66.         newItem.link = data['link']
  67.         newItem.price = data['price']
  68.         newItem.save()
  69.  
  70.         print ' [~] New item "%s" - %s' % (data['name'], data['price'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement