project005.py 1.49 KB
Newer Older
Litwin Bartosz's avatar
Litwin Bartosz committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#scraping from site
import requests
from bs4 import BeautifulSoup
import json
import argparse

parser = argparse.ArgumentParser(description='html scraper.')
parser.add_argument('filename', help='Name of the file to save data to')
args = parser.parse_args()

def scraper():
    
    res = 'https://darksouls.wiki.fextralife.com/Boss+Soul+Weapons'
    res = requests.get(res)
    if res.status_code == 200:
        soup = BeautifulSoup(res.text, 'html.parser')
        main_div = soup.find('div', class_ = "table-responsive")
        dig=main_div.select("table tr td ")
        # for i in dig:
        #     print(i.text)
        weapon_name=[]
        soul_name=[]
        weapon_requirements=[]
        weapon_notes = []
        for i,tag in enumerate(dig):
            weapon_row = i%4
            if(weapon_row==0):
                soul_name.append(tag.get_text().strip())
            if(weapon_row==1):
                weapon_name.append(tag.get_text().strip())
            if(weapon_row==2):
                weapon_requirements.append(tag.get_text().strip())
            if(weapon_row==3):
                weapon_notes.append(tag.get_text().strip())
            
        table=list(zip(soul_name,weapon_name,weapon_requirements,weapon_notes))
        
        with open(output_file, 'w') as file:
            json.dump(table,file,indent=4)
        print(f"Dane zostały zapisane do pliku {output_file}")
    else:
        print('Error: Could not get data from url')

output_file = args.filename+".json"
scraper()