add some scripts.
This commit is contained in:
+152
-35
@@ -31,6 +31,8 @@ import csv
|
||||
import logging
|
||||
import signal
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
from bs4 import BeautifulSoup
|
||||
from requests.exceptions import RequestException
|
||||
import config
|
||||
@@ -43,17 +45,19 @@ res_dir = './result'
|
||||
res_json_file = f'{res_dir}/detail.json'
|
||||
res_csv_file = f'{res_dir}/detail.csv'
|
||||
input_json_file = f'{res_dir}/merged.json'
|
||||
performers_dir = f'{res_dir}/performers'
|
||||
|
||||
# 存储结果
|
||||
final_data = []
|
||||
|
||||
# 读取 detail.json 中的 href
|
||||
# 读取 detail.json 中的 数据,以便于断点续传
|
||||
def load_existing_hrefs():
|
||||
existing_hrefs = set()
|
||||
global final_data
|
||||
try:
|
||||
with open(res_json_file, 'r') as file:
|
||||
data = json.load(file)
|
||||
for entry in data:
|
||||
final_data = json.load(file)
|
||||
for entry in final_data:
|
||||
existing_hrefs.add(entry['href'])
|
||||
except FileNotFoundError:
|
||||
logging.info("detail.json not found, starting fresh.")
|
||||
@@ -65,7 +69,7 @@ def fetch_and_parse_page(url, scraper):
|
||||
response = scraper.get(url)
|
||||
if response.status_code != 200:
|
||||
logging.warning(f"Failed to fetch {url}, Status code: {response.status_code}")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# 解析 HTML 内容
|
||||
soup = BeautifulSoup(response.text, 'html.parser')
|
||||
@@ -92,6 +96,47 @@ def fetch_and_parse_page(url, scraper):
|
||||
}
|
||||
reversed_map = {v: k for k, v in fields.items()}
|
||||
|
||||
# 解析表格数据
|
||||
movies = []
|
||||
vixen_cnt = 0
|
||||
blacked_cnt = 0
|
||||
tushy_cnt = 0
|
||||
x_art_cnt = 0
|
||||
table = soup.find('table', id='personal')
|
||||
if table:
|
||||
rows = table.find_all('tr', class_='we')
|
||||
for row in rows:
|
||||
cols = row.find_all('td')
|
||||
if len(cols) >= 6:
|
||||
title = cols[0].text.strip()
|
||||
year = cols[1].text.strip()
|
||||
distributor = cols[2].text.strip().lower()
|
||||
notes = cols[3].text.strip()
|
||||
rev = cols[4].text.strip()
|
||||
formats = cols[5].text.strip()
|
||||
|
||||
# 统计 distributor 中的关键词
|
||||
if 'vixen' in distributor:
|
||||
vixen_cnt += 1
|
||||
if 'blacked' in distributor:
|
||||
blacked_cnt += 1
|
||||
if 'tushy' in distributor:
|
||||
tushy_cnt += 1
|
||||
if 'x_art' in distributor:
|
||||
x_art_cnt += 1
|
||||
|
||||
movies.append({
|
||||
'title': title,
|
||||
'year': year,
|
||||
'distributor': distributor,
|
||||
'notes': notes,
|
||||
'rev': rev,
|
||||
'formats': formats
|
||||
})
|
||||
else:
|
||||
logging.warning(f"movie table empty. ")
|
||||
|
||||
|
||||
# 遍历每个 bioheading
|
||||
bioheadings = soup.find_all('p', class_='bioheading')
|
||||
for bio in bioheadings:
|
||||
@@ -112,11 +157,18 @@ def fetch_and_parse_page(url, scraper):
|
||||
if heading in reversed_map:
|
||||
kkey = reversed_map[heading]
|
||||
data[kkey] = biodata
|
||||
|
||||
# 添加统计数据到 data
|
||||
data['movies_cnt'] = len(movies)
|
||||
data['vixen_cnt'] = vixen_cnt
|
||||
data['blacked_cnt'] = blacked_cnt
|
||||
data['tushy_cnt'] = tushy_cnt
|
||||
data['x_art_cnt'] = x_art_cnt
|
||||
|
||||
return data
|
||||
return data, movies
|
||||
except RequestException as e:
|
||||
logging.error(f"Error fetching {url}: {e}")
|
||||
return None
|
||||
return None, None
|
||||
|
||||
# 写入 detail.json
|
||||
def write_to_detail_json(data):
|
||||
@@ -128,13 +180,24 @@ def write_to_csv(data):
|
||||
try:
|
||||
with open(res_csv_file, 'w', newline='', encoding='utf-8') as csvfile:
|
||||
writer = csv.writer(csvfile, delimiter=',')
|
||||
header = ['person', 'href', 'performer_aka', 'birthday', 'astrology', 'birthplace', 'gender', 'years_active', 'ethnicity', 'nationality', 'hair_colors', 'eye_color', 'height', 'weight', 'measurements', 'tattoos', 'piercings']
|
||||
header = ['person', 'href', 'performer_aka', 'birthday', 'astrology', 'birthplace', 'gender', 'years_active', 'ethnicity',
|
||||
'nationality', 'hair_colors', 'eye_color', 'height', 'weight', 'measurements', 'tattoos', 'piercings',
|
||||
'movies_cnt', 'vixen_cnt', 'blacked_cnt', 'tushy_cnt', 'x_art_cnt']
|
||||
writer.writerow(header)
|
||||
for entry in data:
|
||||
# 确保 performer_aka 始终为列表类型
|
||||
performer_aka = entry.get('performer_aka', [])
|
||||
|
||||
# 如果是 None 或非列表类型,转换为一个空列表
|
||||
if performer_aka is None:
|
||||
performer_aka = []
|
||||
elif not isinstance(performer_aka, list):
|
||||
performer_aka = [performer_aka]
|
||||
|
||||
writer.writerow([
|
||||
entry.get('person', ''),
|
||||
entry.get('href', ''),
|
||||
'|'.join(entry.get('performer_aka', [])),
|
||||
'|'.join(performer_aka),
|
||||
entry.get('birthday', ''),
|
||||
entry.get('astrology', ''),
|
||||
entry.get('birthplace', ''),
|
||||
@@ -148,7 +211,12 @@ def write_to_csv(data):
|
||||
entry.get('weight', ''),
|
||||
entry.get('measurements', ''),
|
||||
entry.get('tattoos', ''),
|
||||
entry.get('piercings', '')
|
||||
entry.get('piercings', ''),
|
||||
entry.get('movies_cnt', 0),
|
||||
entry.get('vixen_cnt', 0),
|
||||
entry.get('blacked_cnt', 0),
|
||||
entry.get('tushy_cnt', 0),
|
||||
entry.get('x_art_cnt', 0)
|
||||
])
|
||||
except Exception as e:
|
||||
logging.error(f"Error writing to CSV: {e}")
|
||||
@@ -159,21 +227,49 @@ def handle_exit_signal(signal, frame):
|
||||
write_to_detail_json(final_data)
|
||||
sys.exit(0)
|
||||
|
||||
# 创建目录
|
||||
def create_directory_for_person(person):
|
||||
# 获取 person 的前两个字母并转为小写
|
||||
person_dir = person[:1].lower()
|
||||
full_path = os.path.join(performers_dir, person_dir)
|
||||
if not os.path.exists(full_path):
|
||||
os.makedirs(full_path)
|
||||
return full_path
|
||||
|
||||
# 从 https://www.iafd.com/person.rme/id=21898a3c-1ddd-4793-8d93-375d6db20586 中抽取 id 的值
|
||||
def extract_id_from_href(href):
|
||||
"""从href中提取id参数"""
|
||||
match = re.search(r'id=([a-f0-9\-]+)', href)
|
||||
return match.group(1) if match else ''
|
||||
|
||||
# 写入每个 performer 的单独 JSON 文件
|
||||
def write_person_json(person, href, data):
|
||||
# 获取目录
|
||||
person_dir = create_directory_for_person(person)
|
||||
person_id = extract_id_from_href(href)
|
||||
person_filename = f"{person.replace(' ', '-')}({person_id}).json" # 用 - 替换空格
|
||||
full_path = os.path.join(person_dir, person_filename)
|
||||
|
||||
try:
|
||||
with open(full_path, 'w', encoding='utf-8') as json_file:
|
||||
json.dump(data, json_file, indent=4, ensure_ascii=False)
|
||||
except Exception as e:
|
||||
logging.error(f"Error writing file {full_path}: {e}")
|
||||
|
||||
|
||||
def main():
|
||||
# 初始化 cloudscraper
|
||||
scraper = cloudscraper.create_scraper()
|
||||
|
||||
# 加载已存在的 href 列表
|
||||
global final_data
|
||||
existing_hrefs = load_existing_hrefs()
|
||||
logging.info(f"load data from {res_json_file}, count: {len(final_data)}")
|
||||
|
||||
# 读取 merged.json
|
||||
with open(input_json_file, 'r') as file:
|
||||
merged_data = json.load(file)
|
||||
|
||||
# 注册退出信号
|
||||
signal.signal(signal.SIGINT, handle_exit_signal) # Handle Ctrl+C
|
||||
signal.signal(signal.SIGTERM, handle_exit_signal) # Handle kill signal
|
||||
|
||||
# 遍历 merged.json 中的数据
|
||||
loop = 0
|
||||
for entry in merged_data:
|
||||
@@ -187,30 +283,51 @@ def main():
|
||||
logging.info(f"Processing {href} - {person}")
|
||||
|
||||
# 获取并解析数据
|
||||
data = fetch_and_parse_page(href, scraper)
|
||||
if data:
|
||||
# 如果数据正确,加入到 final_data
|
||||
final_data.append({
|
||||
'href': href,
|
||||
'person': person,
|
||||
**data
|
||||
})
|
||||
loop = loop+1
|
||||
if loop % 100 == 0:
|
||||
# 更新 detail.json 文件
|
||||
print(f'flush data to json file. now data count: {loop}')
|
||||
write_to_detail_json(final_data)
|
||||
|
||||
# 更新已存在的 href
|
||||
existing_hrefs.add(href)
|
||||
while True:
|
||||
data, movies = fetch_and_parse_page(href, scraper)
|
||||
if data is None:
|
||||
logging.warning(f'Retring {href} - {person} ')
|
||||
time.sleep(3)
|
||||
else:
|
||||
break
|
||||
|
||||
# 如果数据正确,加入到 final_data
|
||||
final_data.append({
|
||||
'href': href,
|
||||
'person': person,
|
||||
**data
|
||||
})
|
||||
|
||||
# 写入 performer 的独立 JSON 文件
|
||||
full_data = {
|
||||
'href': href,
|
||||
'person': person,
|
||||
**data,
|
||||
'movies': movies if movies else []
|
||||
}
|
||||
write_person_json(person.strip(), href, full_data)
|
||||
|
||||
# 更新 detail.json 文件
|
||||
loop = loop + 1
|
||||
if loop % 100 == 0:
|
||||
logging.info(f'flush data to json file. now fetched data count: {loop}, total count: {len(final_data)}')
|
||||
write_to_detail_json(final_data)
|
||||
write_to_csv(final_data)
|
||||
|
||||
# 更新已存在的 href
|
||||
existing_hrefs.add(href)
|
||||
|
||||
# 延时,防止请求过快被封锁
|
||||
time.sleep(1)
|
||||
|
||||
# 完成后一次性写入 CSV
|
||||
write_to_csv(final_data)
|
||||
|
||||
logging.info("Data processing completed.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
try:
|
||||
# 注册退出信号
|
||||
signal.signal(signal.SIGINT, handle_exit_signal) # Handle Ctrl+C
|
||||
signal.signal(signal.SIGTERM, handle_exit_signal) # Handle kill signal
|
||||
main()
|
||||
finally:
|
||||
# 清理操作,保证在程序正常退出时执行
|
||||
write_to_csv(final_data) # Write to CSV or other necessary tasks
|
||||
write_to_detail_json(final_data) # Save data to JSON
|
||||
logging.info("Data processing completed.")
|
||||
@@ -27,6 +27,7 @@ Modification History:
|
||||
import json
|
||||
import csv
|
||||
import os
|
||||
import argparse
|
||||
from collections import defaultdict
|
||||
|
||||
# 读取文件并返回内容
|
||||
@@ -76,24 +77,41 @@ def save_to_csv(data, output_file):
|
||||
|
||||
# 主函数,执行数据处理并保存
|
||||
def main():
|
||||
# 使用 argparse 获取命令行参数
|
||||
parser = argparse.ArgumentParser(description="合并多个 JSON 文件并输出到一个新的 JSON 和 CSV 文件")
|
||||
parser.add_argument('files', nargs='+', choices=['birth', 'astro', 'ethnic'],
|
||||
help="指定需要合并的文件, 至少两个, 最多三个: birth, astro, ethnic")
|
||||
args = parser.parse_args()
|
||||
|
||||
# 确保至少选择两个文件
|
||||
if len(args.files) < 2:
|
||||
print("请至少选择两个文件进行合并。")
|
||||
return
|
||||
|
||||
# 定义需要处理的文件
|
||||
files = [
|
||||
{'path': 'result/birth.json', 'name': 'birth'},
|
||||
{'path': 'result/astro.json', 'name': 'astro'},
|
||||
{'path': 'result/ethnic.json', 'name': 'ethnic'}
|
||||
]
|
||||
file_map = {
|
||||
'birth': 'result/birth.json',
|
||||
'astro': 'result/astro.json',
|
||||
'ethnic': 'result/ethnic.json'
|
||||
}
|
||||
|
||||
files = [{'path': file_map[file], 'name': file} for file in args.files]
|
||||
|
||||
# 处理数据
|
||||
processed_data = process_data(files)
|
||||
|
||||
# 根据输入的文件名生成 merged 文件名
|
||||
output_json_file = f'result/merged_{"_".join(args.files)}.json'
|
||||
output_csv_file = f'result/merged_{"_".join(args.files)}.csv'
|
||||
|
||||
# 确保 result 目录存在
|
||||
os.makedirs('result', exist_ok=True)
|
||||
|
||||
# 输出结果到 JSON 和 CSV 文件
|
||||
save_to_json(processed_data, 'result/merged.json')
|
||||
save_to_csv(processed_data, 'result/merged.csv')
|
||||
save_to_json(processed_data, output_json_file)
|
||||
save_to_csv(processed_data, output_csv_file)
|
||||
|
||||
print("数据处理完成,结果已保存到 result/merged.json 和 result/merged.csv")
|
||||
print(f"数据处理完成,结果已保存到 {output_json_file} 和 {output_csv_file}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,18 +1,46 @@
|
||||
person,href,performer_aka,birthday,astrology,birthplace,gender,years_active,ethnicity,nationality,hair_colors,eye_color,height,weight,measurements,tattoos,piercings
|
||||
Aaliyah,https://www.iafd.com/person.rme/id=50caabcd-c270-4d4a-b80f-2429201f6ff5,No known aliases,01/01/????,Capricorn,US,Trans woman,2006-2007,Black,American,Black/Dark Brown,Unknown,"5 feet, 5 inches (165 cm)",123 lbs (56 kg),No data,No data,No data
|
||||
Amanda Addams,https://www.iafd.com/person.rme/id=67bdb3b8-adf6-4ce5-9278-73a5777b459e,Amanda Adams|Amanda Stone|Camile|Camille|Emily Moore,01/01/????,Capricorn,"New Port Richey, FL",Woman,1990-1997,Caucasian,American,Brown/Red,Unknown,No data,No data,42DD-??-??,Flower with stem and leaves right breast,None
|
||||
Ashley,https://www.iafd.com/person.rme/id=44d0ecd8-c519-40b4-83aa-cdfe9670d238,No known aliases,01/01/????,Capricorn,No data,Trans woman,,Latin,Mexican,,Unknown,No data,No data,No data,No data,No data
|
||||
Daniela Canalis,https://www.iafd.com/person.rme/id=3b2728e0-6eac-4620-8e3f-5086d3cbaa24,Daniele|Danyelle Comini|Isabella Bittencour,01/01/????,Capricorn,"Belo Horizonte, Brazil",Trans woman,2003-2006,Caucasian,Brazilian,,Blue,"5 feet, 5 inches (165 cm)",No data,No data,No data,No data
|
||||
Dream Doll,https://www.iafd.com/person.rme/id=481fd985-9740-4c1b-b794-4620d6528cc1,No known aliases,01/01/????,Capricorn,USA,Trans woman,,Black,American,,Unknown,No data,No data,No data,"""Theresa"" right front shoulder; Stars right lower arm; ""Locked Loyalty"" inner left lower arm; Flower right hip",Right cheekbone
|
||||
Gianna,https://www.iafd.com/person.rme/id=8e22a8e0-e28e-4767-ad74-cae7a1ef6f15,No known aliases,01/01/????,Capricorn,No data,Trans woman,2006-2009,Caucasian,No data,,Unknown,No data,No data,No data,No data,No data
|
||||
Kirsten,https://www.iafd.com/person.rme/id=ca699282-1b57-4ce7-9bcc-d7799a292e34,Kirsten Claudia|Trish,01/01/????,Capricorn,No data,Trans woman,,Latin,No data,Black/Brown/Light Brown,Unknown,No data,No data,36DD-24-35,No data,No data
|
||||
Maya,https://www.iafd.com/person.rme/id=fae84552-50cf-494b-b34f-a22e1a669fd9,No known aliases,01/01/????,Capricorn,No data,Trans woman,,Latin/Multi-ethnic,No data,Black/Dark Brown,Unknown,"5 feet, 5 inches (165 cm)",125 lbs (57 kg),No data,No data,No data
|
||||
Paris,https://www.iafd.com/person.rme/id=79724d4a-dbd4-4e15-9d90-a49ec2a6bde1,No known aliases,01/01/????,Capricorn,US,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,No data
|
||||
Shaniah,https://www.iafd.com/person.rme/id=fcb9e75d-3086-4950-a48a-599ae053c8cf,No known aliases,01/01/????,Capricorn,US,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,Navel
|
||||
Tosha,https://www.iafd.com/person.rme/id=37b08999-7ba0-460b-9a26-f6be57406ded,No known aliases,01/01/????,Capricorn,Maryland,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,No data
|
||||
Viktoria,https://www.iafd.com/person.rme/id=e585c62f-8df6-4312-a023-9563e6b559e5,No known aliases,01/01/????,Capricorn,Russia,Trans woman,,Caucasian,Russian,,Unknown,No data,No data,No data,No data,No data
|
||||
Maryanne Fisher,https://www.iafd.com/person.rme/id=21898a3c-1ddd-4793-8d93-375d6db20586,No known aliases,01/01/19??,Capricorn,No data,Woman,,Caucasian,No data,,Unknown,No data,No data,No data,No data,No data
|
||||
Claude Marcault,https://www.iafd.com/person.rme/id=19971b82-648b-4795-9fd5-a0f7c3ed867f,No known aliases,"January 1, 1941 (would be 84 years old)",Capricorn,India,Woman,,Caucasian,French,,Unknown,No data,No data,No data,No data,No data
|
||||
Fernando Arcangeli,https://www.iafd.com/person.rme/id=b32894f5-d15f-40fa-8048-daa6cfa6e480,Ferdinando Arcangeli|Mimì Losy,"January 1, 1942 (83 years old)",Capricorn,"Province of Rome, Italy",Man,1976-1983 (Started around 34 years old),Caucasian,Italian,,Unknown,No data,No data,,No data,No data
|
||||
Doris Arden,https://www.iafd.com/person.rme/id=585e3afc-9525-48cd-a1d7-9895049c3948,No known aliases,"January 1, 1946 (79 years old)",Capricorn,"Trostberg, Bavaria, Germany",Woman,,Caucasian,German,,Hazel,No data,No data,No data,No data,No data
|
||||
Ennio Pontis,https://www.iafd.com/person.rme/id=b2aa39b4-644d-4f61-b088-2ff80ed344b3,No known aliases,"January 1, 1951 (74 years old)",Capricorn,"Rome, Italy",Man,,Caucasian,Italian,,Unknown,No data,No data,,No data,No data
|
||||
person,href,performer_aka,birthday,astrology,birthplace,gender,years_active,ethnicity,nationality,hair_colors,eye_color,height,weight,measurements,tattoos,piercings,movies_cnt,vixen_cnt,blacked_cnt,tushy_cnt,x_art_cnt
|
||||
Desiree Cousteau,https://www.iafd.com/person.rme/id=02468dae-0585-420a-a0e4-51d87d2926bd,Deseree Clearbranch|Deseree Cousteau|Desiree Clearbranch|Desiree Costau|Desiree Costeau|Desirée Costeau|Desireé Cousteau|Desirée Cousteau|Désirée Cousteau|Desiree Cousteaus|Desirée Cousteaus,"January 1, 1956 (69 years old)",Capricorn,"Savannah, Georgia",Woman,1978-1983 (Started around 22 years old),Caucasian,American,Black/Brown/Auburn,Brown,No data,No data,34D-25-35,No data,No data,0,0,0,0,0
|
||||
Heather Deeley,https://www.iafd.com/person.rme/id=a2059292-32d2-4f90-baeb-30167c075780,No known aliases,"January 1, 1956 (69 years old)",Capricorn,"Suffolk, England, UK",Woman,,Caucasian,English,,Unknown,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Eva Orlowsky,https://www.iafd.com/person.rme/id=ee34b1da-13a8-4104-8c97-f5b4dcd49ae0,Ava|Ava Orlousky|Eva Orloski|Eva Orlosky|Eva Orlowski|Eva Orwloschi|Eva Orwlosky|Eva Pistarino|Orloski,"January 1, 1962 (63 years old)",Capricorn,"Genoa, Italy",Woman,1989-1995 (Started around 27 years old),Caucasian,Italian,,Unknown,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Steve Hard,https://www.iafd.com/person.rme/id=8f608d9e-471d-4370-b9f6-3a8cf38f7837,Ivan Salacso|Ivan Salcso|Ivano Prati|Michael|Sterling Moss|Steven Hard|Tony Muflone,"January 1, 1964 (61 years old)",Capricorn,"Varpalota, Hungary",Man,1996-1998 (Started around 32 years old),Caucasian,Hungarian,,Unknown,No data,No data,,No data,No data,0,0,0,0,0
|
||||
Michelle Meadows,https://www.iafd.com/person.rme/id=06c9b89e-0ee9-46dd-ab22-fc9b97bccd9f,Jane Blond|Michele Meadows,"January 1, 1965 (60 years old)",Capricorn,Canada,Woman,2012-2014 (Started around 47 years old),Caucasian,Canadian,,Blue,"5 feet, 9 inches (176 cm)",134 lbs (61 kg),34D-??-??,Dolphins on lower back,None,4,0,0,0,0
|
||||
Joey Stefano,https://www.iafd.com/person.rme/id=29e722ce-98ba-46b7-b9d1-c4643348eeda,Joey Stephano|Joey Syefano,"January 1, 1968 (would be 57 years old)",Capricorn,"Chester, PA, USA",Man,1989-1994 (Started around 21 years old),Caucasian,American,,Unknown,"5 feet, 10 inches (178 cm)",No data,,(Later) Right Biceps,None,0,0,0,0,0
|
||||
Nikki Santana,https://www.iafd.com/person.rme/id=4d216d38-eaa9-4188-9cf1-6a55b2e5cae4,Naughty Nikki|Nikki,"January 1, 1968 (57 years old)",Capricorn,"San Gabriel Valley, CA",Woman,2000-2009 (Started around 32 years old),Latin,Mexican,Black/Brown,Unknown,"5 feet, 9 inches (175 cm)",149 lbs (68 kg),40EE-29-38,Rose on lower back; band around right upper arm,No data,4,0,0,0,0
|
||||
Serge Scott,https://www.iafd.com/person.rme/id=925c3431-31c4-4536-84f9-15d5b7498f24,No known aliases,"January 1, 1968 (57 years old)",Capricorn,"London, UK",Man,,Caucasian,English,,Unknown,"5 feet, 3 inches (160 cm)",189 lbs (86 kg),,No data,No data,0,0,0,0,0
|
||||
Tom Southern,https://www.iafd.com/person.rme/id=5ab3717b-a8f0-4102-b9d0-218f20296e54,Thom Southern|Tom,"January 1, 1968 (57 years old)",Capricorn,"Nashville, TN, USA",Man,1999-2010 (Started around 31 years old),Caucasian,American,Brown/Bald,Brown,"6 feet, 1 inches (185 cm)",200 lbs (91 kg),,Right shoulder; Tribal on left shoulder and upper left biceps,Nipples,0,0,0,0,0
|
||||
D. Wise,https://www.iafd.com/person.rme/id=65902e2e-2fb7-4815-b5db-6960deda2e7b,"Winner: Best Group Sex Scene|,|Orgy World: The Next Level 7|(2004)","January 1, 1969 (would be 56 years old)",Capricorn,No data,Man,,Black,American,,Unknown,No data,No data,,None,None,11,0,0,0,0
|
||||
Harley Davis,https://www.iafd.com/person.rme/id=99f60b64-41b8-4fd5-a5ef-e81429a54b08,Danaca Grey|Danica Grey|Dannaka Grey|Dannica Gray|Dannica Grey|Harley,"January 1, 1970 (55 years old)",Capricorn,"Dallas, Texas",Woman,2001-2006 (Started around 31 years old),Caucasian,American,,Hazel,"5 feet, 4 inches (163 cm)",121 lbs (55 kg),34DD-25-35,None,None,2,0,0,0,0
|
||||
Johnny Thrust,https://www.iafd.com/person.rme/id=78c4a421-4481-43e6-b9cc-bcd377ab5c28,"Nominee: Best Oral Sex Scene: Video,|Gag Factor 9|(2002)","January 1, 1970 (55 years old)",Capricorn,"Los Angeles County, CA, USA",Man,,Caucasian,American,,Brown,"5 feet, 7 inches (170 cm)",129 lbs (59 kg),,None,Ears,16,0,0,0,0
|
||||
Aaliyah,https://www.iafd.com/person.rme/id=50caabcd-c270-4d4a-b80f-2429201f6ff5,No known aliases,01/01/????,Capricorn,US,Trans woman,2006-2007,Black,American,Black/Dark Brown,Unknown,"5 feet, 5 inches (165 cm)",123 lbs (56 kg),No data,No data,No data,3,0,0,0,0
|
||||
Amanda Addams,https://www.iafd.com/person.rme/id=67bdb3b8-adf6-4ce5-9278-73a5777b459e,Amanda Adams|Amanda Stone|Camile|Camille|Emily Moore,01/01/????,Capricorn,"New Port Richey, FL",Woman,1990-1997,Caucasian,American,Brown/Red,Unknown,No data,No data,42DD-??-??,Flower with stem and leaves right breast,None,0,0,0,0,0
|
||||
Ashley,https://www.iafd.com/person.rme/id=44d0ecd8-c519-40b4-83aa-cdfe9670d238,No known aliases,01/01/????,Capricorn,No data,Trans woman,,Latin,Mexican,,Unknown,No data,No data,No data,No data,No data,1,0,0,0,0
|
||||
Daniela Canalis,https://www.iafd.com/person.rme/id=3b2728e0-6eac-4620-8e3f-5086d3cbaa24,Daniele|Danyelle Comini|Isabella Bittencour,01/01/????,Capricorn,"Belo Horizonte, Brazil",Trans woman,2003-2006,Caucasian,Brazilian,,Blue,"5 feet, 5 inches (165 cm)",No data,No data,No data,No data,1,0,0,0,0
|
||||
Dream Doll,https://www.iafd.com/person.rme/id=481fd985-9740-4c1b-b794-4620d6528cc1,No known aliases,01/01/????,Capricorn,USA,Trans woman,,Black,American,,Unknown,No data,No data,No data,"""Theresa"" right front shoulder; Stars right lower arm; ""Locked Loyalty"" inner left lower arm; Flower right hip",Right cheekbone,2,0,0,0,0
|
||||
Gianna,https://www.iafd.com/person.rme/id=8e22a8e0-e28e-4767-ad74-cae7a1ef6f15,No known aliases,01/01/????,Capricorn,No data,Trans woman,2006-2009,Caucasian,No data,,Unknown,No data,No data,No data,No data,No data,5,0,0,0,0
|
||||
Kirsten,https://www.iafd.com/person.rme/id=ca699282-1b57-4ce7-9bcc-d7799a292e34,Kirsten Claudia|Trish,01/01/????,Capricorn,No data,Trans woman,,Latin,No data,Black/Brown/Light Brown,Unknown,No data,No data,36DD-24-35,No data,No data,1,0,0,0,0
|
||||
Maya,https://www.iafd.com/person.rme/id=fae84552-50cf-494b-b34f-a22e1a669fd9,No known aliases,01/01/????,Capricorn,No data,Trans woman,,Latin/Multi-ethnic,No data,Black/Dark Brown,Unknown,"5 feet, 5 inches (165 cm)",125 lbs (57 kg),No data,No data,No data,1,0,0,0,0
|
||||
Paris,https://www.iafd.com/person.rme/id=79724d4a-dbd4-4e15-9d90-a49ec2a6bde1,No known aliases,01/01/????,Capricorn,US,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,No data,2,0,0,0,0
|
||||
Shaniah,https://www.iafd.com/person.rme/id=fcb9e75d-3086-4950-a48a-599ae053c8cf,No known aliases,01/01/????,Capricorn,US,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,Navel,1,0,0,0,0
|
||||
Tosha,https://www.iafd.com/person.rme/id=37b08999-7ba0-460b-9a26-f6be57406ded,No known aliases,01/01/????,Capricorn,Maryland,Trans woman,,Black,American,,Unknown,No data,No data,No data,No data,No data,2,0,0,0,0
|
||||
Viktoria,https://www.iafd.com/person.rme/id=e585c62f-8df6-4312-a023-9563e6b559e5,No known aliases,01/01/????,Capricorn,Russia,Trans woman,,Caucasian,Russian,,Unknown,No data,No data,No data,No data,No data,2,0,0,0,0
|
||||
Maryanne Fisher,https://www.iafd.com/person.rme/id=21898a3c-1ddd-4793-8d93-375d6db20586,No known aliases,01/01/19??,Capricorn,No data,Woman,,Caucasian,No data,,Unknown,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Claude Marcault,https://www.iafd.com/person.rme/id=19971b82-648b-4795-9fd5-a0f7c3ed867f,No known aliases,"January 1, 1941 (would be 84 years old)",Capricorn,India,Woman,,Caucasian,French,,Unknown,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Fernando Arcangeli,https://www.iafd.com/person.rme/id=b32894f5-d15f-40fa-8048-daa6cfa6e480,Ferdinando Arcangeli|Mimì Losy,"January 1, 1942 (83 years old)",Capricorn,"Province of Rome, Italy",Man,1976-1983 (Started around 34 years old),Caucasian,Italian,,Unknown,No data,No data,,No data,No data,0,0,0,0,0
|
||||
Doris Arden,https://www.iafd.com/person.rme/id=585e3afc-9525-48cd-a1d7-9895049c3948,No known aliases,"January 1, 1946 (79 years old)",Capricorn,"Trostberg, Bavaria, Germany",Woman,,Caucasian,German,,Hazel,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Ennio Pontis,https://www.iafd.com/person.rme/id=b2aa39b4-644d-4f61-b088-2ff80ed344b3,No known aliases,"January 1, 1951 (74 years old)",Capricorn,"Rome, Italy",Man,,Caucasian,Italian,,Unknown,No data,No data,,No data,No data,0,0,0,0,0
|
||||
Giorgio Grand,https://www.iafd.com/person.rme/id=150f6ac9-0e5b-4efc-bf2a-5e0f05644f8c,,"January 1, 1954 (71 years old)",Capricorn,"Turin, Italy",Man,,Caucasian,Italian,,Unknown,No data,No data,,No data,No data,0,0,0,0,0
|
||||
Bella Bare,https://www.iafd.com/person.rme/id=3170f526-134b-4fa2-980f-c4d8e58e6e91,Bella Dare (richardmannsworld.com)|Petite Professor|Petite Professor XXX,"January 1, 1971 (54 years old)",Capricorn,"California, USA",Woman,2022-2025 (Started around 51 years old),Caucasian,American,,Green,"5 feet, 0 inches (152 cm)",99 lbs (45 kg),32A-??-??,Heart right bikini line,No data,21,0,0,0,0
|
||||
John Marcus,https://www.iafd.com/person.rme/id=f051b643-ef1e-4297-8c5e-727628aba77e,Jon Marcus,"January 1, 1971 (54 years old)",Capricorn,"Washington State, USA",Man,1996-2013 (Started around 25 years old),Caucasian,American,Grey/Dark Brown,Unknown,"5 feet, 9 inches (175 cm)",165 lbs (75 kg),,None,Ears,3,0,0,0,0
|
||||
Flower,https://www.iafd.com/person.rme/id=c753d420-eb68-46cc-be0a-d3d115972d90,Flower Edwards (softcore),"January 1, 1974 (51 years old)",Capricorn,"Los Angeles, California",Woman,1998-2000 (Started around 24 years old),Asian,American,,Brown,No data,No data,No data,small design on right shoulder; large sun-shaped design on small of back,No data,0,0,0,0,0
|
||||
Gabriele Benedetti,https://www.iafd.com/person.rme/id=2bc92804-cbdb-4f53-802f-bb1ffed85da3,No known aliases,"January 1, 1974 (51 years old)",Capricorn,No data,Man,,Caucasian,No data,,Unknown,"5 feet, 9 inches (175 cm)",No data,,No data,No data,0,0,0,0,0
|
||||
June Kelly,https://www.iafd.com/person.rme/id=4ce5f403-8ed2-4771-9ee6-bed516f5806d,Bessi|Hana|Hana Luv|Julia|June|Kelly June,"January 1, 1974 (51 years old)",Capricorn,Czech Republic,Woman,2006-2012 (Started around 32 years old),Caucasian,Czech,,Blue,"5 feet, 7 inches (170 cm)",94 lbs (43 kg),42HH-47-50,No data,No data,1,0,0,0,0
|
||||
Mikki Taylor,https://www.iafd.com/person.rme/id=bb2238b3-97bf-49eb-ba27-7530a3d62129,No known aliases,"January 1, 1974 (51 years old)",Capricorn,Houston. TX,Woman,1998-2002 (Started around 24 years old),Caucasian,American,,Unknown,"5 feet, 4 inches (163 cm)",125 lbs (57 kg),36C-24-36,No data,No data,2,0,0,0,0
|
||||
Baby,https://www.iafd.com/person.rme/id=9bad19a7-7d35-4003-b63c-b57db61e6241,No known aliases,"January 1, 1975 (50 years old)",Capricorn,No data,Woman,,Caucasian,No data,,Unknown,No data,No data,No data,No data,No data,0,0,0,0,0
|
||||
Ramon Mendez,https://www.iafd.com/person.rme/id=49f92c9a-d780-4e91-868b-7beaefa816dc,Ramon,"January 1, 1976 (49 years old)",Capricorn,Brazil,Man,2004-2007 (Started around 28 years old),Latin,Brazilian,,Unknown,"5 feet, 9 inches (175 cm)",182 lbs (83 kg),,Chili Pepper To The Right Of His Penis,No data,0,0,0,0,0
|
||||
Seranade,https://www.iafd.com/person.rme/id=0f2e8d4a-0e8d-4692-94f2-ff7a9a6bc6c9,No known aliases,"January 1, 1976 (49 years old)",Capricorn,USA,Woman,,Black,American,,Unknown,"5 feet, 11 inches (180 cm)",No data,36D-33-40,None,None,1,0,0,0,0
|
||||
Candy Roxxx,https://www.iafd.com/person.rme/id=9ad5a2d6-a5e0-4e2f-82b4-86316f436a7b,Candy Rocks|Candy Roxx|Randy Roxx,"January 1, 1977 (48 years old)",Capricorn,Minnesota,Woman,1997-2004 (Started around 20 years old),Caucasian,American,Black/Brown/Blond,Unknown,"5 feet, 8 inches (173 cm)",116 lbs (53 kg),36DD-25-35,"Left calf; small flower left of navel; right shoulder blade black panther, with ""Forever Frank's"" in script below; spiral barbed wire above right ankle; armband left upper arm",Clithood; nipples (1999); navel,1,0,0,0,0
|
||||
Kylie Brooks,https://www.iafd.com/person.rme/id=dd3c7b5e-709d-4121-b787-0f1df1e7328e,Alison|Amy (ALS)|Kylie|Ryan,"January 1, 1978 (47 years old)",Capricorn,"Carrollton, KY",Woman,1999-2003 (Started around 21 years old),Caucasian,American,Brown/Blond,Blue,"5 feet, 4 inches (163 cm)",99 lbs (45 kg),35C-24-34,Flower right of navel; Wavy line on lower back; Tinker Bell on left shoulder blade,Navel; Left nipple,0,0,0,0,0
|
||||
Richie Calhoun,https://www.iafd.com/person.rme/id=46c7c922-3789-4277-bf47-ef03df262cfa,Richie|Richie's Brain,"January 1, 1978 (47 years old)",Capricorn,"California, USA",Man,2010-2018 (Started around 32 years old),Caucasian,American,,Unknown,"6 feet, 1 inches (185 cm)",160 lbs (73 kg),,Faint asterisk on right side of lower abdomen (right above groin),None,155,0,0,0,0
|
||||
Brooklyn Bailey,https://www.iafd.com/person.rme/id=7888b8c9-daa2-4655-a7bc-32ae4b00c141,Brooklyn Baily|Valerie Dior,"January 1, 1980 (45 years old)",Capricorn,California,Woman,2009-2012 (Started around 29 years old),Caucasian,American,,Unknown,"5 feet, 3 inches (160 cm)",112 lbs (51 kg),34DD-24-33,No data,No data,15,0,0,0,0
|
||||
Vanessa Luna,https://www.iafd.com/person.rme/id=54ac0d21-b7da-4e0c-b7dc-4e5f1727f77c,No known aliases,"January 1, 1980 (45 years old)",Capricorn,"Caracas, Venezuela",Woman,2013-2018 (Started around 33 years old),Latin,Venezuelan,,Brown,"5 feet, 1 inches (155 cm)",112 lbs (51 kg),34D-27-39,Design across small of back. Design above pubes,No data,15,0,0,0,0
|
||||
Bruna Garcia,https://www.iafd.com/person.rme/id=8242b45f-b2b4-4a84-9d99-40f864e0bc63,No known aliases,"January 1, 1981 (44 years old)",Capricorn,"Silves, Amazonas, Brazil",Trans woman,2005-2006 (Started around 24 years old),Latin,Brazilian,,Unknown,No data,No data,No data,No data,No data,3,0,0,0,0
|
||||
|
||||
|
+606
-729658
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Symlink
+1
@@ -0,0 +1 @@
|
||||
merged_birth_astro.json
|
||||
|
Can't render this file because it is too large.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user