Guest User

Untitled

a guest
Dec 6th, 2021
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. from bs4 import BeautifulSoup
  2. import requests
  3. import csv
  4.  
  5.  
  6. def get_html(url):
  7.     response = requests.get(url)
  8.     if response.ok:
  9.         return response.text
  10.     print(response.status_code)
  11.  
  12.  
  13. def refined(s):
  14.     pr = s.replace('$', '').replace(',', '')
  15.     return round(float(pr), 6)
  16.  
  17.  
  18. def write_csv(data):
  19.     with open('cmc_2.csv', 'a') as f:
  20.         writer = csv.writer(f, delimiter=';')
  21.         writer.writerow((data['name'],
  22.                          data['url'],
  23.                          data['price']))
  24.  
  25.  
  26. def get_data(html):
  27.     soup = BeautifulSoup(html, 'lxml')
  28.  
  29.     trs = soup.find('tbody').find_all('tr')
  30.  
  31.     for tr in trs:
  32.         tds = tr.find_all('td')
  33.  
  34.         try:
  35.             name = tds[2].text
  36.         except:
  37.             name = ''
  38.  
  39.         try:
  40.             url = tds[2].find('a').get('href')
  41.         except:
  42.             url = ''
  43.  
  44.         try:
  45.             price = tds[3].find('span').text
  46.         except:
  47.             price = ''
  48.  
  49.         data = {'name': name,
  50.                 'url': url,
  51.                 'price': refined(price)}
  52.  
  53.         write_csv(data)
  54.  
  55.  
  56. def main():
  57.     pattern = 'https://coinmarketcap.com'
  58.     get_data(get_html(pattern))
  59.  
  60.  
  61. if __name__ == '__main__':
  62.     main()
  63.  
Advertisement
Add Comment
Please, Sign In to add comment