Question: I want to extract all members' names, but I am getting the names of the members only from the first page.

```
from bs4 import BeautifulSoup
import requests

r = requests.get('https://www.acoinsite.org/life-member')
soup = BeautifulSoup(r.text,'lxml')

for data in soup.find_all('p',class_='font_7'):
    print data.text

```

I expected the output of members name from all 103 pages. Any idea how to fix it?

Answer: 
if you view the source you can see the data is in json format, you can find the right json and then parse using `json.loads()` and iterate over it, see the code below!

```
import requests,json
from bs4 import BeautifulSoup
req = requests.get('https://www.acoinsite.org/life-member')
soup = BeautifulSoup(req.content,'lxml')
jdata = str(soup.find_all('script')[9]).split('warmupData = ')[1].split('</script>')[0].strip()[:-1]
data = json.loads(jdata)
for item in data['wixapps']['appbuilder']['items']['BlankList_i34svvgq322'].values():
    print('Name: {}\nAddress: {}\nPhone: {}\nEmail: {}\n---------------------'.format(
        item['title'].encode('utf-8'),
        item['i34t1kp5'].encode('utf-8'),
        item['i34t40ov'].encode('utf-8'),
        item['i34t4jot'].encode('utf-8')))

```
This should solve your issue:

```
from bs4 import BeautifulSoup
import requests
headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "DNT": "1", "Connection": "close", "Upgrade-Insecure-Requests": "1"}
r = requests.get('https://www.acoinsite.org/life-member',headers=headers)
soup = BeautifulSoup(r.content,'lxml')
print(soup)
for data in soup.findAll('p',class_='font_7'):
    print(data.find('em',{"style":"font-style:normal;"}).text)

```

hope this helps