How to scrape a table in a given website?

I am trying to extract values for each row for "Fee" field in the website https://remittanceprices.worldbank.org/en/corridor/United-States/Mexico. I came really close but not able to extract the values for "Fee" column. The code is shown below

url = 'https://remittanceprices.worldbank.org/en/corridor/Australia/China'
r = requests.get(url,verify=False)
soup = BeautifulSoup(r.text,'lxml')
rows = [i.get_text("|").split("|") for i in soup.select('#tab-1 .corridor-row')]
for row in rows:
    #a,b,c,d,e = row[2],row[15],row[18],row[21],row[25]
    #print(a,b,c,d,e,sep='|')
    print('{0[2]}|{0[15]}|{0[18]}|{0[21]}|{0[25]}'.format(row))```

Upvotes: 0

Views: 37

Answers (1)

Paul M.
Paul M.

Reputation: 10809

def main():

    import requests
    from bs4 import BeautifulSoup

    url = "https://remittanceprices.worldbank.org/en/corridor/United-States/Mexico"

    response = requests.get(url)
    response.raise_for_status()

    soup = BeautifulSoup(response.content, "html.parser")

    for cell in soup.select("div.views-field-field-cc1-fee > div > span:first-of-type"):
        print(cell.text.strip())

    return 0


if __name__ == "__main__":
    import sys
    sys.exit(main())

Output:

0.00
0.00
2.99
2.99
3.00
2.99
4.00
5.00
3.99
3.99
3.99
3.99
5.00
5.00
5.00
3.99
3.99
8.00
8.50
10.00
3.99
7.00
10.00
4.95
10.00
9.99
8.00
>>> 

Upvotes: 2

Related Questions