├── merge fail.txt
├── .gitattributes
├── TAG NAME.txt
├── xvideos.log
├── 说明
├── img
│ └── 爬虫框架运行流程图.png
└── 说明文档.md
├── __pycache__
├── down_one.cpython-37.pyc
├── sendEmail.cpython-37.pyc
├── merge_ts_file.cpython-37.pyc
└── exception_handling.cpython-37.pyc
├── Entites
├── __init__.py
└── Video.py
├── Utils
├── __init__.py
├── TSFileMergeUtil.py
└── RequestUtil.py
├── VideoUpload
├── __init__.py
└── MegaManager.py
├── SpiderManager
├── __init__.py
└── SpiderManager.py
├── URLManager
├── __init__.py
└── URLManager.py
├── HtmlParser
├── __init__.py
├── HtmlParser.py
└── VideoParser.py
├── HtmlDownloader
├── __init__.py
├── HtmlDownloader.py
└── VideoDownloader.py
├── DataOutput
├── __init__.py
└── DataOutput.py
├── SpiderMain.py
├── get_favorite_urls.py
├── get_saved.py
├── sendEmail.py
├── NO EXISTS.txt
├── down_some.py
├── SpiderConfig.py
├── exception_handling.py
├── xvideos.py
├── merge_ts_file.py
├── .gitignore
├── README.md
├── down_group.py
├── down_one.py
├── SAVED.txt
├── ERROR.txt
└── xvideos_urls.txt
/merge fail.txt:
--------------------------------------------------------------------------------
1 | 35904115
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.html linguist-language=python
2 |
--------------------------------------------------------------------------------
/TAG NAME.txt:
--------------------------------------------------------------------------------
1 | https://www.xvideos.com/lang/japanese 日本のアダルト動画
2 |
--------------------------------------------------------------------------------
/xvideos.log:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/xvideos.log
--------------------------------------------------------------------------------
/说明/img/爬虫框架运行流程图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/说明/img/爬虫框架运行流程图.png
--------------------------------------------------------------------------------
/__pycache__/down_one.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/__pycache__/down_one.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/sendEmail.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/__pycache__/sendEmail.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/merge_ts_file.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/__pycache__/merge_ts_file.cpython-37.pyc
--------------------------------------------------------------------------------
/__pycache__/exception_handling.cpython-37.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonny0812/xvideos/HEAD/__pycache__/exception_handling.cpython-37.pyc
--------------------------------------------------------------------------------
/说明/说明文档.md:
--------------------------------------------------------------------------------
1 | ## 基础爬虫框架
2 |
3 | 基础爬虫框架主要包括五大模块:
4 |
5 | - 爬虫调度器
6 | - URL管理器
7 | - HTML下载器
8 | - HTML解析器
9 | - 数据存储器
10 |
11 | 运行流程
12 | 
13 |
14 | ## 本项目相关
15 |
16 |
--------------------------------------------------------------------------------
/Entites/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/24
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/Utils/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/VideoUpload/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/28
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/VideoUpload/MegaManager.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: MegaManager
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/28
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/SpiderManager/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description : 调度器
6 | Author : qiuqiu
7 | date: 2019/10/21
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/URLManager/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description : URL管理器
6 | Author : qiuqiu
7 | date: 2019/10/21
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/HtmlParser/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description : HTML解析器,用于分析页面
6 | Author : qiuqiu
7 | date: 2019/10/21
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/HtmlDownloader/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description : HTML下载器,负责下载页面
6 | Author : qiuqiu
7 | date: 2019/10/21
8 | -------------------------------------------------
9 | """
--------------------------------------------------------------------------------
/DataOutput/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: __init__.py
5 | Description : 用于输出数据,可以存放到磁盘文件,
6 | 也可以存放到数据库
7 | Author : qiuqiu
8 | date: 2019/10/21
9 | -------------------------------------------------
10 | """
--------------------------------------------------------------------------------
/SpiderMain.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: SpiderMain
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 | from SpiderManager.SpiderManager import SpiderManager
11 |
12 | if __name__ == "__main__":
13 | spider_man = SpiderManager()
14 |
15 | spider_man.run()
--------------------------------------------------------------------------------
/get_favorite_urls.py:
--------------------------------------------------------------------------------
1 | import re
2 |
3 | html = r'bookmarks_2019_8_16.html'
4 | with open(html,'r',encoding='utf-8') as f1:
5 | with open('xvideos_urls.txt','w',encoding='utf-8') as f2:
6 | for line in f1:
7 | url = re.search(r'https?://www.xvideos.com/video\d+?.*?(?=")',line)
8 | if url:
9 | f2.write(url.group()+'\n')
10 |
11 | with open('xvideos_urls.txt','r',encoding='utf-8') as f2:
12 | print(len(f2.readlines()))
--------------------------------------------------------------------------------
/get_saved.py:
--------------------------------------------------------------------------------
1 | import re, os
2 |
3 | root_path = r'E:\仓殷禀阜\xvideos'
4 | list = []
5 | for dir in os.listdir(root_path):
6 | for dir2 in os.listdir(os.path.join(root_path, dir)):
7 | for dir3 in os.listdir(os.path.join(root_path, dir, dir2)):
8 | with open(os.path.join(root_path, dir, dir2, dir3, 'information.txt'),errors='ignore')as f:
9 | list.append(re.search(r'https://www.xvideos.com/video(\d+)/',f.read()).group(1))
10 |
11 | with open('SAVED.txt','w') as f:
12 | for i in list:
13 | f.write(i+'\n')
--------------------------------------------------------------------------------
/HtmlDownloader/HtmlDownloader.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: HtmlDownloader
5 | Description : HTML下载器,需要考虑页面编码,实现一个接口downlaod(url)
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 | import SpiderConfig
11 | from Utils import RequestUtil
12 |
13 |
14 | class HtmlDownloader(object):
15 |
16 | def download_with_proxies(self, url):
17 | return RequestUtil.download_content(url, proxies=SpiderConfig.PROXIES, timeout=10)
18 |
--------------------------------------------------------------------------------
/sendEmail.py:
--------------------------------------------------------------------------------
1 | import smtplib
2 | from email.mime.text import MIMEText
3 |
4 | def SendEmail(text):
5 |
6 | fromAdd="kljxnnn@163.com" #你的邮箱 发件地址
7 | toAdd = 'kljxn@qq.com'
8 | subject = 'xvideos爬虫出错'
9 |
10 | _pwd = "163mail" #授权码
11 |
12 | msg = MIMEText(text)
13 | msg["Subject"] = subject
14 | msg["From"] = fromAdd
15 | msg["To"] = toAdd
16 | try:
17 | s = smtplib.SMTP_SSL("smtp.163.com", 465)
18 | s.login(fromAdd, _pwd)
19 | s.sendmail(fromAdd, toAdd, msg.as_string())
20 | s.quit()
21 | print ("Send Email Success!")
22 | except smtplib.SMTPException:
23 | print('Send Email Falied!')
24 |
25 | if __name__=='__main__':
26 |
27 | text = 'hhhhha'
28 | SendEmail(text)
--------------------------------------------------------------------------------
/NO EXISTS.txt:
--------------------------------------------------------------------------------
1 | 48514183
2 | 49101655
3 | 29707043
4 | 32709077
5 | 32305077
6 | 34354229
7 | 34431449
8 | 32418785
9 | 31534257
10 | 32656369
11 | 31488599
12 | 32155909
13 | 32656341
14 | 32966525
15 | 37838351
16 | 39971687
17 | 31695049
18 | 39749275
19 | 38903409
20 | 39282144
21 | 35664227
22 | 34510003
23 | 34581423
24 | 35568195
25 | 32440417
26 | 29182845
27 | 19667677
28 | 42328463
29 | 38799825
30 | 42152859
31 | 41613909
32 | 42184543
33 | 42003493
34 | 42173911
35 | 42071587
36 | 42180973
37 | 41958261
38 | 41874713
39 | 41946673
40 | 41946735
41 | 41747909
42 | 38742881
43 | 42029149
44 | 36495739
45 | 41719507
46 | 40666617
47 | 40654599
48 | 40766225
49 | 40873119
50 | 41038079
51 | 41167279
52 | 40457139
53 | 43012089
54 | 42935697
55 | 47898515
56 | 46572655
57 | 48342039
58 | 34644021
59 | 36537789
60 |
--------------------------------------------------------------------------------
/down_some.py:
--------------------------------------------------------------------------------
1 | from exception_handling import log_exception
2 | import down_one
3 | import time, os
4 |
5 |
6 | @log_exception
7 | def downloads():
8 | #dir_name = input('请输入文件夹名称(最终文件存放于root_path/00-来自文本/自定义文件夹名):')
9 | dir_name = '20190817'
10 | urls_txt = 'xvideos_urls.txt'
11 | with open(urls_txt,'r',encoding='utf-8') as f:
12 | urls_list=f.readlines()
13 | for i, url in enumerate(urls_list):
14 | print('进度: %d/%d'%(i+1, len(urls_list)))
15 | print('网址: %s'%url[:-1]) #去除url末尾的'\n'
16 | xvideos = down_one.Xvideos(url)
17 | xvideos.root_path = os.path.join(xvideos.root_path, '00-来自文本', dir_name)
18 | xvideos.download()
19 | print()
20 |
21 | if __name__ == '__main__':
22 | start = time.perf_counter()
23 | downloads()
24 | end = time.perf_counter()
25 | print('任务执行共%d小时%d分%.2f秒' % ((end-start)//3600,(end-start)%3600//60,(end-start)%60))
--------------------------------------------------------------------------------
/Utils/TSFileMergeUtil.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: TSFileMerge
5 | Description : 合并ts文件
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 | import os
11 | from glob import glob
12 |
13 |
14 | # 对转换的TS文件进行排序
15 | def get_sorted_ts(user_path):
16 | ts_list = glob(os.path.join(user_path, '*.ts'))
17 | boxer = []
18 | for ts in ts_list:
19 | if os.path.exists(ts):
20 | file, _ = os.path.splitext(os.path.basename(ts))
21 | boxer.append(int(file))
22 | boxer.sort()
23 | return boxer
24 |
25 | # 文件合并
26 | def convert_m3u8(boxer, desc_file_name):
27 | tmp = []
28 | for ts in boxer:
29 | tmp.append(str(ts) + '.ts')
30 | cmd_str = '+'.join(tmp)
31 | exec_str = "copy /B " + cmd_str + ' ' + desc_file_name
32 | print(exec_str)
33 | os.system(exec_str)
34 |
--------------------------------------------------------------------------------
/SpiderConfig.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: SpiderConfig
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 | import os
11 |
12 | # 视频上限
13 | MAX_NUMBER = 1000
14 | VIDEOS_OUTPUT_LIST_FILE_PATH = os.path.join(os.path.dirname(__file__), "文件", "video_list.html")
15 | VIDEOS_OUTPUT_REAL_URL_LIST_FILE_PATH = os.path.join(os.path.dirname(__file__), "文件", "real_video_list.html")
16 | VIDEOS_OUTPUT_TEMP_PATH = os.path.join(os.path.dirname(__file__), "视频", "temp")
17 | VIDEOS_OUTPUT_PATH = os.path.join(os.path.dirname(__file__), "视频")
18 |
19 | PROXIES = {'http': '127.0.0.1:1080', 'https': '127.0.0.1:1080'}
20 |
21 | PARALLEL_NUM = 5
22 |
23 | urls = ['https://www.xvideos.com/%s' % n for n in
24 | [''] + ['new/%d' % m for m in list(range(1, 2))] + ['lang/chinese/%s' % p for p in list(range(1, 3))] +
25 | ['c/Solo&Masturbation-33'] + ['c/%s/Solo&Masturbation-33' % s for s in list(range(1, 2))]]
26 |
--------------------------------------------------------------------------------
/exception_handling.py:
--------------------------------------------------------------------------------
1 | import functools
2 | import logging
3 | from sendEmail import SendEmail
4 | import traceback
5 |
6 | def create_logger():
7 | logger = logging.getLogger("xvideos_log")
8 | logger.setLevel(logging.INFO)
9 | if not logger.handlers:
10 | fh = logging.FileHandler("xvideos.log")
11 | fmt = "[%(asctime)s-%(name)s-%(levelname)s]:\n%(message)s"
12 | formatter = logging.Formatter(fmt) #设置格式
13 | fh.setFormatter(formatter) #将相应的handler添加在logger对象中
14 | logger.addHandler(fh) #打印日记
15 | #logger.removeHandler(fh) #在记录日志之后移除句柄,以解决 logging 重复写日志问题
16 | return logger
17 |
18 | def log_exception(fn):
19 | @functools.wraps(fn)
20 | def wrapper(*args, **kwargs):
21 | logger = create_logger()
22 | try:
23 | fn(*args, **kwargs)
24 | except Exception as e:
25 | SendEmail(traceback.format_exc())
26 | logger.exception("[Error in {}] msg: {}".format(__name__, str(e)))
27 | with open('xvideos.log','a+',encoding='utf-8') as f:
28 | f.write('\n')
29 | raise #主动抛出异常
30 | return wrapper
--------------------------------------------------------------------------------
/Entites/Video.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: Entites
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/24
8 | -------------------------------------------------
9 | """
10 |
11 |
12 | class Video(object):
13 | def __init__(self, title, url, imgurl=''):
14 | self.title = title
15 | self.url = url
16 | self.imgurl = imgurl
17 | self.realurl = []
18 | self.localpath = ""
19 |
20 | def get_title(self):
21 | return self.title
22 |
23 | def get_url(self):
24 | return self.url
25 |
26 | def get_img_url(self):
27 | return self.imgurl
28 |
29 | def set_img_url(self, imgurl):
30 | self.imgurl = imgurl
31 |
32 | def get_real_url(self):
33 | return self.realurl
34 |
35 | def set_real_url(self, realurls):
36 | for url in realurls:
37 | self.realurl.append(url)
38 |
39 | def get_local_path(self):
40 | return self.localpath
41 |
42 | def set_local_path(self, localpath):
43 | self.localpath = localpath
44 |
45 | def __eq__(self, other):
46 | if isinstance(other, Video):
47 | return ((self.title == other.title) and (self.url == other.url)) and (self.imgurl == other.imgurl)
48 | else:
49 | return False
50 |
51 | def __ne__(self, other):
52 | return (not self.__eq__(other))
53 |
54 | def __hash__(self):
55 | return hash(self.title) + hash(self.url) + hash(self.imgurl)
56 |
57 | # def __str__(self) -> str:
58 | # return "{" + self.title + "," + self.url + "," + str(self.realurl) + "}"
59 |
60 |
61 | if __name__ == "__main__":
62 | video = Video('title', 'url')
63 | print(video.get_title(), video.get_url())
64 | urls = ['u1', 'u2']
65 | for url in urls:
66 | print(url)
67 | video.set_real_url(urls)
68 | print(video)
69 |
--------------------------------------------------------------------------------
/HtmlParser/HtmlParser.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: HtmlParser
5 | Description : 用于解析网页内容抽取URL和数据
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 |
11 | import urllib.parse
12 |
13 | from bs4 import BeautifulSoup
14 |
15 | from Entites.Video import Video
16 |
17 |
18 | class HtmlParser(object):
19 |
20 | def parser(self, page_url, html_cont):
21 | '''
22 | 用于解析网页内容抽取URL和数据
23 | :param page_url: 下载页面的URL
24 | :param html_cont: 下载的网页内容
25 | :return:返回小视频的title和URL
26 | '''
27 | if page_url is None or html_cont is None:
28 | return
29 | soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')
30 | video_datas = self._get_video_infos(page_url, soup)
31 | return video_datas
32 |
33 | def _get_video_infos(self, page_url, soup):
34 | '''
35 | 抽取新的URL集合
36 | :param page_url: 下载页面的URL
37 | :param soup:soup
38 | :return: 返回小视频的title&url
39 | '''
40 | videos = set()
41 | # 抽取符合要求的a标签
42 | blocks = soup.select('.thumb-block')
43 | for block in blocks:
44 | link = block.select('.thumb-under > p > a')[0]
45 | img_link = block.select('.thumb-inside a img')[0]
46 | try:
47 | # 提取href属性
48 | title = link['title']
49 | url = link['href']
50 | img_url = img_link['data-src']
51 | # 拼接成完整网址
52 | full_vurl = urllib.parse.urljoin(page_url, url)
53 | video = Video("".join(title.split()), full_vurl, img_url)
54 | videos.add(video)
55 | except AttributeError as e:
56 | print(e)
57 |
58 | links = soup.select('.thumb-under > p > a')
59 | for link in links:
60 | try:
61 | # 提取href属性
62 | title = link['title']
63 | url = link['href']
64 | # 拼接成完整网址
65 | full_vurl = urllib.parse.urljoin(page_url, url)
66 | video = Video(title, full_vurl)
67 | videos.add(video)
68 | except AttributeError as e:
69 | print(e)
70 | return videos
71 |
--------------------------------------------------------------------------------
/HtmlParser/VideoParser.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: VideoParser
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/27
8 | -------------------------------------------------
9 | """
10 | import re
11 | import urllib.parse
12 |
13 | from bs4 import BeautifulSoup
14 |
15 |
16 | class VideoParser(object):
17 |
18 | def m3u8parser(self, html_cont):
19 | '''
20 | 用于解析总的m3u8链接
21 | :param html_cont: 下载的网页内容
22 | :return:总的m3u8链接
23 | '''
24 | if html_cont is None:
25 | return
26 | soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')
27 | title = self._get_m3u8_title(soup)
28 | html_cont = html_cont.decode('utf-8')
29 | m3u8_url = re.search(r"html5player\.setVideoHLS\('(.*?)'\);", html_cont).group(1) # 总的m3u8链接
30 | base_url = re.search(r"(.*?)hls.m3u8", m3u8_url).group(1) # 从m3u8_url中取出,留待拼接
31 | return title, base_url, m3u8_url
32 |
33 | def _get_m3u8_title(self, soup):
34 | title = soup.select(".page-title")[0]
35 | if title:
36 | return title.get_text()
37 | return None
38 |
39 | def m3u8HighestParser(self, base_url, m3u8_cont):
40 | '''
41 | 抽取内含不同的清晰度所对应的m3u8链接,返回最高清晰度的m3u8链接
42 | :param base_url: base_url
43 | :param html_cont:html_cont
44 | :return: 返回最高清晰度的m3u8链接
45 | '''
46 | if base_url is None or m3u8_cont is None:
47 | return
48 |
49 | m3u8_cont = m3u8_cont.decode('utf-8')
50 | definition_list = re.findall(r'NAME="(.*?)p"', m3u8_cont)
51 | max_definition = max(definition_list) # 找到最高清晰度
52 | line_list = m3u8_cont.split('\n')
53 | for line in line_list:
54 | if 'hls-' in line and max_definition in line:
55 | max_definition_m3u8_url = line # 最高清晰度的m3u8链接(相对路径)
56 |
57 | max_definition_m3u8_url = urllib.parse.urljoin(base_url, max_definition_m3u8_url)
58 | return max_definition_m3u8_url
59 |
60 | def m3u8TSParser(self, base_url, h_m3u8_cont):
61 | ts_url_list = []
62 | h_m3u8_cont = h_m3u8_cont.decode('utf-8')
63 | for line in h_m3u8_cont.split('\n'):
64 | if '.ts' in line:
65 | ts_url_list.append(urllib.parse.urljoin(base_url, line))
66 | return ts_url_list
67 |
--------------------------------------------------------------------------------
/URLManager/URLManager.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: URLManager
5 | Description : URL管理器,主要包括两个变量,一个是已经爬取过的URL集合,另一个是未爬取过的URL集合。
6 | 采用python中的set类型进行去重,链接去重的实现方式有三种:
7 | 1、内存去重
8 | 2、关系数据库去重
9 | 3、缓存数据库去重(大型成熟爬虫使用的方案)
10 | 需要提供的接口:
11 | 1、判断是否有待取的URL,has_new_url()
12 | 2、添加新的URL到未爬取的集合中, add_new_url(url) add_new_urls(urls)
13 | 3、获取一个为爬取的URL,get_new_url()
14 | 4、获取未爬取URL集合的大小,new_url_size()
15 | 5、获取已爬取的URL集合大小,old_url_size()
16 | Author : qiuqiu
17 | date: 2019/10/22
18 | -------------------------------------------------
19 | """
20 | class UrlManager(object):
21 | def __init__(self):
22 | self.new_urls = set() # 未爬取集合
23 | self.old_urls = set() # 已爬取集合
24 | self.video_set = set() # 视频集合
25 |
26 | def has_new_url(self):
27 | '''
28 | 判断是否有未爬取的URL
29 | :return:
30 | '''
31 | return self.new_url_size() != 0
32 |
33 | def get_new_url(self):
34 | '''
35 | 获取一个未爬取的URL
36 | :return:
37 | '''
38 | new_url = self.new_urls.pop()
39 | self.old_urls.add(new_url)
40 | return new_url
41 |
42 | def add_new_url(self, url):
43 | '''
44 | 将新的URL添加到未爬取的URL集合中
45 | :param url:
46 | :return:
47 | '''
48 | if url is None:
49 | return
50 | if url not in self.new_urls and url not in self.old_urls:
51 | self.new_urls.add(url)
52 |
53 | def add_new_urls(self, urls):
54 | '''
55 | 将新的URL添加到未爬取的URL集合中
56 | :param urls:
57 | :return:
58 | '''
59 | if urls is None and len(urls) == 0:
60 | return
61 | for url in urls:
62 | self.add_new_url(url)
63 |
64 | def add_new_video(self, video):
65 | if video is None:
66 | return
67 | if video not in self.new_urls and video not in self.old_urls:
68 | self.video_set.add(video)
69 |
70 | def add_new_videos(self, videos):
71 | if videos is None and len(videos) == 0:
72 | return
73 | for url in videos:
74 | self.add_new_video(url)
75 |
76 | def new_url_size(self):
77 | return len(self.new_urls)
78 |
79 | def old_url_size(self):
80 | return len(self.old_urls)
81 |
82 | def video_size(self):
83 | return len(self.video_set)
--------------------------------------------------------------------------------
/DataOutput/DataOutput.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: DataOutput
5 | Description : 数据存储,store_data(data)将解析数据放到内存中,output_html()将数据存储成html格式
6 | Author : qiuqiu
7 | date: 2019/10/22
8 | -------------------------------------------------
9 | """
10 | import codecs
11 | import os
12 | import shutil
13 |
14 | from bs4 import BeautifulSoup
15 |
16 | import SpiderConfig
17 | from Utils import TSFileMergeUtil
18 |
19 |
20 | class DataOutput(object):
21 |
22 | def __init__(self):
23 | self.videos = []
24 | self.ts_videos = []
25 |
26 | def store_data(self, video):
27 | if video is None:
28 | return
29 | self.videos.append(video)
30 |
31 | def store_ts_video(self, video):
32 | if video is None:
33 | return
34 | self.ts_videos.append(video)
35 |
36 | def store_datas(self, videos):
37 | if videos is None and len(videos) == 0:
38 | return
39 | for video in videos:
40 | self.store_data(video)
41 |
42 | def output_html(self):
43 | _content = []
44 | _content.append("")
45 | _content.append("
")
46 | _content.append("")
47 | _content.append("")
48 | for video in self.videos:
49 | _content.append("")
50 | _content.append("")
51 | _content.append(" " % (video.get_img_url()))
52 | _content.append(
53 | "%s" % (video.get_url(), video.get_title()))
54 | _content.append(" | ")
55 | _content.append(
56 | "%s" % (video.get_local_path(), video.get_title()))
57 | _content.append("")
58 | _content.append("
")
59 | _content.append("
")
60 | _content.append("")
61 | _content.append("")
62 |
63 | html_cont = ''.join(_content)
64 | soup = BeautifulSoup(html_cont, "lxml")
65 | fout = codecs.open(SpiderConfig.VIDEOS_OUTPUT_LIST_FILE_PATH, 'w', encoding='utf-8')
66 | fout.write(soup.prettify())
67 | fout.close()
68 |
69 | def mergeTS(self, desc_file_name, temp_dir_path, delete=True):
70 | desc_path = os.path.join(SpiderConfig.VIDEOS_OUTPUT_PATH, desc_file_name)
71 | if os.path.exists(desc_path):
72 | print('目标文件%s已存在' % desc_path)
73 | else:
74 | os.chdir(temp_dir_path)
75 | boxer = TSFileMergeUtil.get_sorted_ts(temp_dir_path)
76 | TSFileMergeUtil.convert_m3u8(boxer, desc_path)
77 | os.chdir(SpiderConfig.VIDEOS_OUTPUT_PATH)
78 | # if delete:
79 | # shutil.rmtree(temp_dir_path)
80 | return desc_path
--------------------------------------------------------------------------------
/HtmlDownloader/VideoDownloader.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: VideoDownloader
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/27
8 | -------------------------------------------------
9 | """
10 | import os
11 | import re
12 | from concurrent.futures import wait, ALL_COMPLETED
13 | from concurrent.futures.thread import ThreadPoolExecutor
14 |
15 | from pySmartDL import SmartDL
16 |
17 | import SpiderConfig
18 | from Entites.Video import Video
19 | from Utils import RequestUtil
20 |
21 |
22 | class XVideoDownloader(object):
23 |
24 | def __init__(self):
25 | self.video = None
26 | self.count = 0
27 | self.ts_num = 0
28 | self.ts_file_list = []
29 |
30 | def set_video(self, video):
31 | self.video = video
32 | self.count = 0
33 | self.ts_num = len(video.get_real_url())
34 | self.ts_file_list = []
35 |
36 | def download_parallel(self):
37 | # 线程池
38 | file_path = os.path.join(SpiderConfig.VIDEOS_OUTPUT_TEMP_PATH, self.video.get_title())
39 | if not os.path.exists(file_path):
40 | os.makedirs(file_path)
41 |
42 | with ThreadPoolExecutor(max_workers=SpiderConfig.PARALLEL_NUM) as excutor:
43 | all_task = [excutor.submit(self.download, file_path, url) for url in self.video.get_real_url()]
44 | wait(all_task, return_when=ALL_COMPLETED)
45 | return file_path
46 |
47 | def download(self, parent_path, ts_url):
48 | re_str = r'hls-\d{3,4}p(?:-[a-zA-Z0-9]{5})?(\d+.ts)'
49 | # 目前见过两种,相对路径的前缀分别形如hls-720p3.ts, hls-360p-ba36e0.ts
50 | ts_name = re.search(re_str, ts_url).group(1)
51 | # ts_content = RequestUtil.download_content(ts_url, proxies=SpiderConfig.PROXIES)
52 | ts_content = RequestUtil.download_content(ts_url)
53 | if ts_content:
54 | ts_path = os.path.join(parent_path, ts_name)
55 | with open(ts_path, 'wb') as f:
56 | f.write(ts_content)
57 | f.flush()
58 | self.count += 1
59 | self.ts_file_list.append(ts_path)
60 | print("\r视频进度:%.2f%%" % (self.count / self.ts_num * 100), end=' ')
61 |
62 | class XNXXVideoDownloader(object):
63 | def __init__(self):
64 | self.video = None
65 |
66 | def set_video(self, video):
67 | self.video = video
68 |
69 | def download_parallel(self):
70 | file_path = os.path.join(SpiderConfig.VIDEOS_OUTPUT_TEMP_PATH, self.video.get_title())
71 | if not os.path.exists(file_path):
72 | os.makedirs(file_path)
73 | self.download(file_path, self.video.get_title() + '.mp4', self.video.get_url())
74 | return file_path
75 |
76 | def download(self, parent_path, filename, url):
77 | obj = SmartDL(url, parent_path)
78 | obj.start()
79 |
80 | if __name__ == "__main__":
81 | d = XNXXVideoDownloader()
82 | video = Video('S-Cute', 'https://vid-egc.xnxx-cdn.com/videos/mp4/3/e/a/xvideos.com_3eabfb06537aacf1f8c7ef09022108c3-1.mp4?Sk6tylpHMgUFALI-IFFhxjqKZPedahTPWg1nkkvaBN4QB3tIwJ-27_9Vn4X_m3ekBa3CIHk5roQPLyPtlmUaVg3dsDPLnpR2fNUh49_4y-AoS1MBEihjQvSxvN2B8wpPcoGvs_SoyTslc1S_bzGvYkYZT7VPBL3ilHd0dKVXXILQ2V2rfrkFFs2kB5Wc0YUMK3gdlAjxwiYzwQ&ui=MTcyLjk2LjIxOS41MC0vdmlkZW8taDViMzcyNy9zLWN1dGU=')
83 | d.set_video(video)
84 | d.download_parallel()
--------------------------------------------------------------------------------
/xvideos.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: xvideos
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/23
8 | -------------------------------------------------
9 | """
10 | import json
11 | import random
12 | import re
13 | from collections import namedtuple
14 | from html import unescape
15 |
16 | import requests
17 | from bs4 import BeautifulSoup
18 |
19 |
20 | class XvideosException(Exception):
21 | pass
22 |
23 |
24 | Comment = namedtuple('Comment', ['author', 'content', 'datediff', 'country', 'score'])
25 |
26 | PATTERN = re.compile(r'/video(\d+)/.*')
27 | N_ATTEMPTS = 5
28 |
29 |
30 | def _fetch_page(url):
31 | proxies = {'http': '127.0.0.1:1080', 'https': '127.0.0.1:1080'}
32 | res = requests.get(url, proxies=proxies)
33 |
34 | if res.status_code != 200:
35 | raise Exception(f'Response Error: {res.status_code}')
36 |
37 | return BeautifulSoup(res.text, 'html.parser')
38 |
39 |
40 | def _find_videos(soup):
41 | result = []
42 |
43 | for element in soup.select('.thumb-block > div > p > a'):
44 | print(element)
45 | try:
46 | reference = PATTERN.match(element['href']).group(1)
47 | except AttributeError:
48 | pass
49 |
50 | result.append(reference)
51 | return result
52 |
53 |
54 | def _get_comments(video_ref):
55 | url_mask = 'https://www.xvideos.com/video-get-comments/{0}/0/'
56 | url_mask = 'https://www.xvideos.com/threads/video-comments/get-posts/top/{0}/0/0'
57 | url = url_mask.format(video_ref)
58 | proxies = {'http': '127.0.0.1:1080', 'https': '127.0.0.1:1080'}
59 | res = requests.post(url, proxies=proxies)
60 |
61 | if res.status_code != 200:
62 | raise Exception('Response Error: ' + str(res.status_code))
63 |
64 | posts = json.loads(res.text)['posts']
65 |
66 | if posts['nb_posts_total'] < 1:
67 | return
68 |
69 | def get_safe(prop):
70 | x = item.get(prop, '')
71 | return unescape(x) if x and isinstance(x, str) else None
72 |
73 | result = []
74 |
75 | for item in posts['posts'].values():
76 | try:
77 | score = item['votes']['nb'] - item['votes']['nbb']
78 | except (KeyError, TypeError):
79 | score = 0
80 |
81 | comment = Comment(
82 | get_safe('name') or 'Unknown user',
83 | get_safe('message'),
84 | get_safe('time_diff') or 'some time ago',
85 | get_safe('country_name') or 'unknown region',
86 | score
87 | )
88 |
89 | result.append(comment)
90 |
91 | return result
92 |
93 |
94 | def choose_random_porn_comment(search_term=None):
95 | for _ in range(N_ATTEMPTS):
96 | r = random.randint(1, 10)
97 |
98 | if search_term:
99 | url = f'https://www.xvideos.com/?k={search_term}&p={r}'
100 | else:
101 | url = f'https://www.xvideos.com/'
102 |
103 | page = _fetch_page(url)
104 | references = _find_videos(page)
105 | if not references:
106 | msg = 'No videos were found'
107 | if search_term:
108 | msg += f' with search term "{search_term}"'
109 | raise XvideosException(msg + '. :(')
110 |
111 | comments = _get_comments(random.choice(references))
112 |
113 | if not comments:
114 | continue
115 |
116 | return random.choice(comments)
117 |
118 | raise XvideosException(f'No comments were found after {N_ATTEMPTS} attempts. :(')
119 |
120 |
121 | def main():
122 | comment = choose_random_porn_comment()
123 | print(comment)
124 | print()
125 |
126 |
127 | if __name__ == '__main__':
128 | main()
129 |
--------------------------------------------------------------------------------
/merge_ts_file.py:
--------------------------------------------------------------------------------
1 | import os
2 | import re
3 | import functools
4 |
5 | def cmp(a,b):
6 | na = re.search(r'(\d+).ts', a).group(1)
7 | nb = re.search(r'(\d+).ts', b).group(1)
8 | if int(na) > int(nb):
9 | return 1
10 | else:
11 | return -1
12 |
13 | def merge_less_100(ts_file_list, dir_path, name):
14 |
15 | ffmpeg_path = r'C:\CS\ffmpeg\bin\ffmpeg.exe' #ffmpeg绝对路径
16 | win_merge = 2 #windows下合并ts视频的方式,1为copy/b,2为ffmpeg
17 |
18 | if os.name == 'nt': #windows
19 | pan = re.search(r'^[a-zA-Z]:',dir_path)
20 | elif os.name == 'posix':
21 | pan = re.search(r'^/root',dir_path)
22 |
23 | if pan: #dir_path是绝对路径
24 | dir_path2 = dir_path
25 | else: #dir_path是相对路径
26 | run_path = os.path.dirname(os.path.abspath('__file__'))
27 | dir_path2 = os.path.join(run_path, dir_path) #最终都获得绝对路径
28 |
29 | ts_file_list = sorted(ts_file_list,key=functools.cmp_to_key(cmp))
30 | if os.name == 'nt' and win_merge == 1: #copy/b
31 | input_file = '+'.join(ts_file_list)
32 | elif os.name == 'posix' or (os.name == 'nt' and win_merge == 2): #ffmpeg
33 | input_file = '|'.join(ts_file_list)
34 | output_file = name
35 |
36 | if os.name == 'nt':
37 | command = ''
38 | #command = 'chcp 65001 & ' #cmd编码设为utf-8
39 | command += 'cd /d "%s" & ' % dir_path2
40 | if win_merge == 1: #copy/b
41 | command += 'copy/b %s "%s" & ' % (input_file, output_file)
42 | elif win_merge == 2: #ffmpeg
43 | if not re.match(r'new\d+?.ts',output_file): #ts视频数大于100的第二轮合并或是ts视频数小于100的合并(output_file名为最终文件名的都要经过中间名称,output_file为new\d的不用)
44 | command += '%s -i "concat:%s" -y -acodec copy -vcodec copy -crf 0 "%s" & '%(ffmpeg_path,input_file,'av.mp4') #使用ffmpeg将ts合并为mp4 #使用替身名称,否则ffmpeg遇utf-8字符不工作
45 | else: #ts视频数大于100的第一轮合并
46 | command += '%s -i "concat:%s" -y -acodec copy -vcodec copy -crf 0 "%s" & '%(ffmpeg_path,input_file,output_file)
47 | os.popen(command).read()
48 | if ( (name in os.listdir(dir_path) and
49 | os.path.getsize(os.path.join(dir_path,name))>0 ) or
50 | ('av.mp4' in os.listdir(dir_path) and #av.mp4是路径过长而无法改名导致的
51 | os.path.getsize(os.path.join(dir_path,'av.mp4'))>0) ): #合并成功再删除ts文件
52 | command = ''
53 | command += 'cd /d "%s" & ' % dir_path2
54 | for i in ts_file_list:
55 | command += 'del /Q %s $ ' % i
56 | os.popen(command).read()
57 | #with open('4.txt','a+',encoding='utf-8')as f:
58 | # f.write(command+'\n\n\n')
59 | if win_merge ==2 and not re.match(r'new\d+?.ts',output_file):
60 | command = ''
61 | command += 'cd /d "%s" & ' % dir_path2
62 | command += 'ren "%s" "%s"' % ('av.mp4', output_file) #再把名字换回去 #av后要有文件格式的后缀,否则ffmpeg报错
63 | os.popen(command).read()
64 |
65 | elif os.name == 'posix': #linux采用ffmpeg合并 #ffmpeg后面加上-logevel quiet 不向控制台打印信息 #-crf 0为无损 #-y遇到同名文件则覆盖
66 | command = ''
67 | command += 'cd "%s" && '%dir_path2 #进入视频所在路径
68 | command += 'ffmpeg -i "concat:%s" -y -loglevel quiet -acodec copy -vcodec copy -crf 0 "%s" && '%(input_file,output_file) #使用ffmpeg将ts合并为mp4
69 | for i in ts_file_list:
70 | command += 'rm -rf %s && '%i
71 |
72 | #os.popen(command).read() #os.pepen不会弹出cmd的黑框 #使用read()巧妙地阻塞os.popen
73 | '''
74 | 1、多条命令时不能调用多个os.system或os.popen命令
75 | 因为每条命令都是单独的一个进程
76 | 比如改变了路径后,但下一个os.system或os.popen又回到了最初的路径
77 | 可以将每条命令用&间隔开,然后一次执行
78 | 2、在windows命令提示符下使用的字符串的最大的长度 8191 个字符。
79 | 数量巨大时分批处理
80 | '''
81 |
82 | def merge(ts_file_list, dir_path, name):
83 | if os.name == 'nt':
84 | if len(ts_file_list)<=100:
85 | merge_less_100(ts_file_list, dir_path, name)
86 | else:
87 | ts_file_list = sorted(ts_file_list,key=functools.cmp_to_key(cmp))
88 | for i in range((len(ts_file_list)-1)//100+1):
89 | merge_less_100(ts_file_list[i*100:i*100+100], dir_path, 'new%d.ts'%i)
90 | new_ts_file_list = []
91 | for file in os.listdir(dir_path):
92 | if re.match(r'new\d+?.ts', file):
93 | new_ts_file_list.append(file)
94 | merge_less_100(new_ts_file_list, dir_path, name)
95 | elif os.name == 'posix':
96 | merge_less_100(ts_file_list, dir_path, name) #未测试
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by .ignore support plugin (hsz.mobi)
2 | ### VirtualEnv template
3 | # Virtualenv
4 | # http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
5 | .Python
6 | [Bb]in
7 | [Ii]nclude
8 | [Ll]ib
9 | [Ll]ib64
10 | [Ll]ocal
11 | [Ss]cripts
12 | pyvenv.cfg
13 | .venv
14 | pip-selfcheck.json
15 | __pycache__/
16 |
17 | ### JetBrains template
18 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
19 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
20 |
21 | # User-specific stuff
22 | .idea/**/workspace.xml
23 | .idea/**/tasks.xml
24 | .idea/**/usage.statistics.xml
25 | .idea/**/dictionaries
26 | .idea/**/shelf
27 |
28 | # Generated files
29 | .idea/**/contentModel.xml
30 |
31 | # Sensitive or high-churn files
32 | .idea/**/dataSources/
33 | .idea/**/dataSources.ids
34 | .idea/**/dataSources.local.xml
35 | .idea/**/sqlDataSources.xml
36 | .idea/**/dynamic.xml
37 | .idea/**/uiDesigner.xml
38 | .idea/**/dbnavigator.xml
39 |
40 | # Gradle
41 | .idea/**/gradle.xml
42 | .idea/**/libraries
43 |
44 | # Gradle and Maven with auto-import
45 | # When using Gradle or Maven with auto-import, you should exclude module files,
46 | # since they will be recreated, and may cause churn. Uncomment if using
47 | # auto-import.
48 | # .idea/modules.xml
49 | # .idea/*.iml
50 | # .idea/modules
51 | # *.iml
52 | # *.ipr
53 |
54 | # CMake
55 | cmake-build-*/
56 |
57 | # Mongo Explorer plugin
58 | .idea/**/mongoSettings.xml
59 |
60 | # File-based project format
61 | *.iws
62 |
63 | # IntelliJ
64 | out/
65 |
66 | # mpeltonen/sbt-idea plugin
67 | .idea_modules/
68 |
69 | # JIRA plugin
70 | atlassian-ide-plugin.xml
71 |
72 | # Cursive Clojure plugin
73 | .idea/replstate.xml
74 |
75 | # Crashlytics plugin (for Android Studio and IntelliJ)
76 | com_crashlytics_export_strings.xml
77 | crashlytics.properties
78 | crashlytics-build.properties
79 | fabric.properties
80 |
81 | # Editor-based Rest Client
82 | .idea/httpRequests
83 |
84 | # Android studio 3.1+ serialized cache file
85 | .idea/caches/build_file_checksums.ser
86 |
87 | ### Python template
88 | # Byte-compiled / optimized / DLL files
89 | __pycache__/
90 | *.py[cod]
91 | *$py.class
92 |
93 | # C extensions
94 | *.so
95 |
96 | # Distribution / packaging
97 | .Python
98 | build/
99 | develop-eggs/
100 | dist/
101 | downloads/
102 | eggs/
103 | .eggs/
104 | lib/
105 | lib64/
106 | parts/
107 | sdist/
108 | var/
109 | wheels/
110 | pip-wheel-metadata/
111 | share/python-wheels/
112 | *.egg-info/
113 | .installed.cfg
114 | *.egg
115 | MANIFEST
116 |
117 | # PyInstaller
118 | # Usually these files are written by a python script from a template
119 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
120 | *.manifest
121 | *.spec
122 |
123 | # Installer logs
124 | pip-log.txt
125 | pip-delete-this-directory.txt
126 |
127 | # Unit test / coverage reports
128 | htmlcov/
129 | .tox/
130 | .nox/
131 | .coverage
132 | .coverage.*
133 | .cache
134 | nosetests.xml
135 | coverage.xml
136 | *.cover
137 | .hypothesis/
138 | .pytest_cache/
139 |
140 | # Translations
141 | *.mo
142 | *.pot
143 |
144 | # Django stuff:
145 | *.log
146 | local_settings.py
147 | db.sqlite3
148 |
149 | # Flask stuff:
150 | instance/
151 | .webassets-cache
152 |
153 | # Scrapy stuff:
154 | .scrapy
155 |
156 | # Sphinx documentation
157 | docs/_build/
158 |
159 | # PyBuilder
160 | target/
161 |
162 | # Jupyter Notebook
163 | .ipynb_checkpoints
164 |
165 | # IPython
166 | profile_default/
167 | ipython_config.py
168 |
169 | # pyenv
170 | .python-version
171 |
172 | # pipenv
173 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
174 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
175 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
176 | # install all needed dependencies.
177 | #Pipfile.lock
178 |
179 | # celery beat schedule file
180 | celerybeat-schedule
181 |
182 | # SageMath parsed files
183 | *.sage.py
184 |
185 | # Environments
186 | .env
187 | .venv
188 | env/
189 | venv/
190 | ENV/
191 | env.bak/
192 | venv.bak/
193 |
194 | # Spyder project settings
195 | .spyderproject
196 | .spyproject
197 |
198 | # Rope project settings
199 | .ropeproject
200 |
201 | # mkdocs documentation
202 | /site
203 |
204 | # mypy
205 | .mypy_cache/
206 | .dmypy.json
207 | dmypy.json
208 |
209 | # Pyre type checker
210 | .pyre/
211 | .文件/**
212 | .idea/**
213 | **/__pycache__/**
214 |
215 | "\346\226\207\344\273\266/"
216 | /文件/**
217 | /视频/**
218 |
--------------------------------------------------------------------------------
/SpiderManager/SpiderManager.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: SpiderMain
5 | Description : 爬虫调度器,首先要对各个模块初始化,然后通过crawl(root_url),
6 | 完成流程运转
7 |
8 | Author : qiuqiu
9 | date: 2019/10/22
10 | -------------------------------------------------
11 | """
12 | import datetime
13 | import threading
14 | import time
15 | from multiprocessing import Queue
16 |
17 | import SpiderConfig
18 | from DataOutput.DataOutput import DataOutput
19 | from HtmlDownloader.HtmlDownloader import HtmlDownloader
20 | from HtmlDownloader.VideoDownloader import XVideoDownloader
21 | from HtmlParser.HtmlParser import HtmlParser
22 | from HtmlParser.VideoParser import VideoParser
23 | from URLManager.URLManager import UrlManager
24 |
25 |
26 | class SpiderManager(object):
27 | def __init__(self):
28 | self.manager = UrlManager()
29 | self.downloader = HtmlDownloader()
30 | self.videodownloader = XVideoDownloader()
31 | self.videoParser = HtmlParser()
32 | self.tsParser = VideoParser()
33 | self.output = DataOutput()
34 | self.video_queue = Queue()
35 | self.video_download_queue = Queue()
36 |
37 | def run(self):
38 | threads = []
39 | t1 = threading.Thread(target=self.start_video_url_crawl)
40 | t2 = threading.Thread(target=self.start_video_ts_url_crawl)
41 | t3 = threading.Thread(target=self.start_video_ts_download)
42 | threads.append(t1)
43 | threads.append(t2)
44 | threads.append(t3)
45 | for t in threads:
46 | t.start()
47 | for t in threads:
48 | t.join()
49 | print('all DONE')
50 |
51 | def start_video_url_crawl(self):
52 | for v_url in SpiderConfig.urls:
53 | print("开始获取%s上的视频..." % v_url)
54 | videoes = self._crawl_videoes_url(v_url)
55 | if videoes:
56 | for video in videoes:
57 | print("将 %s 进入video_queue中...队列个数%s" % (video.get_title(), self.video_queue.qsize()))
58 | self.video_queue.put(video)
59 |
60 |
61 | def start_video_ts_url_crawl(self):
62 | while True:
63 | if self.video_queue.empty():
64 | time.sleep(1)
65 | try:
66 | video = self.video_queue.get()
67 | print("从video_queue中获取%s..." % video.get_title())
68 | ts_urls = self._crawl_video_ts_urls(video.get_url())
69 | video.set_real_url(ts_urls)
70 | print("将%s进入video_download_queue中..." % video.get_title())
71 | self.video_download_queue.put(video)
72 | except Exception as e:
73 | print(e)
74 |
75 | def start_video_ts_download(self):
76 | while True:
77 | if self.video_queue.empty():
78 | time.sleep(1)
79 | try:
80 | _starttime = datetime.datetime.now()
81 | video = self.video_download_queue.get()
82 | print("从video_download_queue中获取%s..." % video.get_title())
83 | # 下载视频并合并
84 | self.videodownloader.set_video(video)
85 | ts_temp_path = self.videodownloader.download_parallel()
86 | desc_path = self.output.mergeTS(video.get_title() + ".ts", ts_temp_path)
87 | video.set_local_path(desc_path)
88 | _endtime = datetime.datetime.now()
89 | _excutetime = (_endtime - _starttime).seconds
90 | print("已经抓取%s个视频链接(%d秒)" % (self.manager.video_size(), _excutetime))
91 | except Exception as e:
92 | print(e)
93 |
94 | def _crawl_videoes_url(self, root_url):
95 | try:
96 | _starttime = datetime.datetime.now()
97 | # HTML下载器下载网页
98 | html = self.downloader.download_with_proxies(root_url)
99 | # HTML解析器抽取网页数据
100 | videos = self.videoParser.parser(root_url, html)
101 | return videos
102 | except Exception as e:
103 | print("crawl failed", e)
104 | return None
105 |
106 | def _crawl_video_ts_urls(self, videoURL):
107 | # HTML下载器下载网页
108 | html_cont = self.downloader.download_with_proxies(videoURL)
109 | title, m3u8baseurl, m3u8url = self.tsParser.m3u8parser(html_cont)
110 | m3u8content = self.downloader.download_with_proxies(m3u8url)
111 | m3u8HighestUrl = self.tsParser.m3u8HighestParser(m3u8baseurl, m3u8content)
112 | m3u8HighestContent = self.downloader.download_with_proxies(m3u8HighestUrl)
113 | tslist = self.tsParser.m3u8TSParser(m3u8baseurl, m3u8HighestContent)
114 | return tslist
115 |
116 | def get_video_queue(self):
117 | return self.video_queue
118 |
119 | def get_video_download_queue(self):
120 | return self.video_download_queue
121 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # xvdieos视频爬虫
2 |
3 | 网址:www.xvideos.com
4 |
5 | 需要科学上网
6 |
7 | ## 功能
8 |
9 | 可实现单个视频下载、一个页面上所有视频下载、关键字搜索下载、最佳影片下载、标签页视频下载,下载包括30张图片、2张内容略图、预览视频、正片。
10 |
11 | ## 依赖
12 |
13 | python3:requests,bs4,lxml
14 |
15 | linux:`apt-get install ffmpeg`
16 |
17 | windows:[ffmepg]( "windows ffmpeg x64下载" )(可以使用系统自带的copy/b下位代替)
18 |
19 | ## 写在前面
20 |
21 | * #### 关于代理
22 |
23 | 本程序默认:
24 |
25 | * windows下采用http协议代理,端口为1080
26 | * linux下采用http协议代理,端口为8118
27 |
28 | 可在 **down_one.py** 中修改proxies的值来更换代理方式
29 |
30 | 后面会简单介绍如何搭建能运行本程序的代理环境
31 |
32 | * #### 变量更改
33 |
34 | * 根目录root_path,线程数num_thread,超时时限timeout,重新请求次数retry在 **down_one.py** 中修改
35 |
36 | * windows下ffmpeg的绝对路径ffmpeg_path,windows下使用copy/b或是ffmpeg的关联量win_merge在 **merge_ts_file.py** 中修改
37 |
38 | * #### 关于邮件
39 |
40 | 如果需要程序出错时向自己的邮箱发送邮件,需要修改sendEmail.py中的fromAdd, toAdd, \_pwd, 分别为发件邮箱地址,收件邮箱地址,发件邮箱[授权码](https://jingyan.baidu.com/article/8ebacdf065a1f149f65cd5b5.html "网易邮箱如何设置授权码")
41 |
42 | * #### 视频合并
43 |
44 | 下载的ts视频需要合并,windows下可自行选择copy/b或ffmpeg合并,linux下采用ffmpeg合并。
45 |
46 | 事实证明相较于ffmpeg合并的视频,采用copy/b合并的视频又大又卡又模糊(卡顿十分明显),请自行斟酌(默认ffmpeg,可在**merge_ts_file.py** 修改win_merge的值来更换)
47 |
48 |
49 | ## 文件简介
50 |
51 | * #### 主程序
52 |
53 | **down_one.py** 下载单个视频
54 |
55 | **down_some.py** 读取xvideos_urls.txt,下载视频
56 |
57 | **down_group.py** 下载关键字搜索出来的视频、最佳影片、标签视频
58 |
59 | * #### 辅助程序
60 |
61 | **merge_ts_file.py** 合并ts视频文件
62 |
63 | **sendEmail.py** 发送邮件
64 |
65 | **exception_handling.py** 程序异常时写入异常日志,并发送邮件
66 |
67 | **get_favorite_urls.py** 手动从浏览器中导出收藏夹后,使用本程序可提取出其中的xvideos的url
68 |
69 | **get_saved.py** 获取指定目录下,已经下载过的视频,并存入SAVED.txt,适用于删除了某些视频时更新SAVED.txt
70 |
71 | * #### 其他文件
72 |
73 | **xvideos_urls.txt** down_some.py从此文本中读入要爬取的视频网址
74 |
75 | **xvideos.log** 异常日志
76 |
77 | **SAVED.txt** 存放已经下载的视频的编号
78 |
79 | **NO EXISTS.txt** 存放不存在或被删除的视频的编号
80 |
81 | **ERROR.txt** 存放下载失败的ts文件信息(很鸡肋)
82 |
83 | **TAG NAME.txt** 存放自己指定的标签所对应的名称(用于通过down_group.py下载某个标签的前n页视频时,若曾经给此标签指定过名称,则提示是否沿用曾经指定的名称)
84 |
85 | **information.txt** 写入网页的标题与网址
86 |
87 | ## 代理介绍
88 |
89 | * ### windows
90 |
91 | 若使用ShadowsocksR客户端客户端科学上网,且使用默认设置,则该程序拿来就能用
92 |
93 | * ### linux
94 |
95 | 代理过程:provoxy 监听8118端口的http流量,将其转发给1080端口的sock5代理,并走 shadowsocks 到墙外。
96 |
97 | **以下为程序运行环境配置**
98 |
99 | (以下操作在阿里云Ubuntu16.4上通过)
100 |
101 | `apt-get update`
102 |
103 | 更新源
104 |
105 | `sudo apt-get install git`
106 |
107 | 安装git
108 |
109 | `git clone http://git.mrwang.pw/Reed/Linux_ssr_script.git`
110 |
111 | 在具有写权限的目录执行如下命令获取到ssr脚本仓库
112 |
113 | `cd Linux_ssr_script && chmod +x ./ssr`
114 |
115 | 进入刚刚克隆的仓库目录并赋予`ssr`脚本执行权限
116 |
117 | `sudo mv ./ssr /usr/local/sbin/`
118 |
119 | 将脚本放入可执行脚本的目录
120 |
121 | `ssr install `
122 |
123 | 安装ssr,脚本会下载ssr客户端并移动到合适的位置
124 |
125 | `ssr config`
126 |
127 | 编辑配置文件,在里面输入你的节点连接信息,然后保存。
128 |
129 | 配置文件内容形如
130 |
131 | ```
132 | {
133 | "server": "服务器地址",
134 | "local_address": "127.0.0.1",
135 | "local_port": 1080,
136 | "timeout": 300,
137 | "workers": 1,
138 | "server_port": 80,
139 | "password": "密码",
140 | "method": "none",
141 | "obfs": "http_post",
142 | "obfs_param": "download.windowsupdate.com",
143 | "protocol": "auth_chain_a",
144 | "protocol_param": "3412:H2LChD"
145 | }
146 | ```
147 |
148 | 科学上网的节点这里不提供,请自行准备
149 |
150 | `sudo apt install privoxy`
151 |
152 | 安装privoxy
153 |
154 | `vim /etc/privoxy/config`
155 |
156 | 默认的配置文件地址在 `/etc/privoxy/config` 目录下。假设本地 1080 端口已经启动,然后要将本地 1080 socks5 代理转成 http 代理,重要的配置只有两行。
157 |
158 | ```
159 | # 把本地 HTTP 流量转发到本地 1080 SOCKS5 代理
160 | forward-socks5t / 127.0.0.1:1080 .
161 | # 可选,默认监听本地连接
162 | listen-address 127.0.0.1:8118
163 | ```
164 |
165 | 使用如下命令启动
166 |
167 | ```
168 | sudo /etc/init.d/privoxy start
169 | sudo /etc/init.d/privoxy force-reload # 不重启服务的情况下重新加载配置
170 | ```
171 |
172 | VPS重启后需要重新启动ssr和privoxy,也可以设为启动项
173 |
174 | 参考:
175 |
176 | [Linux安装并使用ssr客户端](https://blog.mrwang.pw/2018/12/13/Linux%E5%AE%89%E8%A3%85%E5%B9%B6%E4%BD%BF%E7%94%A8ssr/ )
177 |
178 | [使用 privoxy 转发 socks 到 http ](http://einverne.github.io/post/2018/03/privoxy-forward-socks-to-http.html )
179 |
180 | ## 更新日志
181 |
182 | * 2019.8.10
183 |
184 | windows下创建文件夹时,文件夹名称最后一个字符是空格时,系统会删除此空格作为名称。解决了一个源此的bug
185 |
186 | * 2019.8.8
187 |
188 | 由于类的初始化不正确导致**down_group.py** 下载一个页面的所有视频时,下载到的图片都是同一组。已修复。
189 |
190 | 同时增添**get_saved.py**
191 |
192 | * 2019.7.23
193 |
194 | * 分离出merge_ts_file.py,在windows中引入ffmpeg,并解决copy/b不能合并过多ts文件的问题(cmd中字符串长度限制在八千多一些)
195 |
196 | (注意:合并ts视频的功能尚未在linux上测试)
197 |
198 | * 引入下载某图片或ts视频前检测是否存在的机制,存在则不再下载
199 | * 修改下载成功的条件,只有文件夹内存在title.ts且大小不为0,方写入SAVED.txt,避免合并失败却依旧写入SAVED.txt
200 |
201 | * 2019.7.22
202 |
203 | * 文本名称包含html实体时则将html实体转换,如&hel lip;转换为省略号
204 |
205 | * 解决OSError: [Errno 36] File name too long
206 |
207 | * 2019.7.21
208 |
209 | * 发现windows下ts文件过多时似乎不会合并,网上也有人遇到这种问题,可能是copy命令的锅
210 |
211 | * 2019.7.20
212 |
213 | * 晚 增添down_group.py
214 |
215 | * 午 基本完成
216 |
217 | * 2019.7.16
218 |
219 | * 晚 开始琢磨写这个爬虫
220 |
221 |
--------------------------------------------------------------------------------
/Utils/RequestUtil.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | -------------------------------------------------
4 | File Name: RequestUtil
5 | Description :
6 | Author : qiuqiu
7 | date: 2019/10/27
8 | -------------------------------------------------
9 | """
10 | import random
11 |
12 | import requests
13 |
14 |
15 | def download_content(url, proxies=None, timeout=10):
16 | if url is None:
17 | return None
18 | response = requests.get(url, proxies=proxies, timeout=timeout, headers=get_header())
19 | if response.status_code == requests.codes.ok:
20 | return response.content
21 | return None
22 |
23 |
24 | '''
25 | USER_AGENTS 随机头信息
26 | '''
27 | USER_AGENTS = [
28 | "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
29 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
30 | "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
31 | "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
32 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
33 | "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
34 | "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
35 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
36 | "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
37 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
38 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
39 | "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
40 | "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
41 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
42 | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
43 | "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
44 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
45 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
46 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
47 | "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
48 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER",
49 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
50 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
51 | "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
52 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)",
53 | "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
54 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
55 | "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
56 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
57 | "Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
58 | "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre",
59 | "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0",
60 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
61 | "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
62 | ]
63 |
64 |
65 | def get_header():
66 | return {
67 | 'User-Agent': random.choice(USER_AGENTS),
68 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
69 | 'Accept-Language': 'en-US,en;q=0.5',
70 | 'Connection': 'keep-alive',
71 | 'Accept-Encoding': 'gzip, deflate',
72 | }
73 |
--------------------------------------------------------------------------------
/down_group.py:
--------------------------------------------------------------------------------
1 | from exception_handling import log_exception
2 | import down_one
3 | from bs4 import BeautifulSoup
4 | import time, os, re, traceback
5 |
6 |
7 | def download_videos_of_one_page(url='', page_type='01-单页下载'): #page_type表示该页面是什么类型的,比如说是最佳影片,比如说搜索关键字是XX
8 | if traceback.extract_stack()[-2][2] == 'choice':
9 | url = input('请输入网址:')
10 | dir_name = input('请输入文件夹名称(最终文件存放于root_path/01-单页下载/自定义文件夹名):')
11 | xvideos = down_one.Xvideos()
12 | if traceback.extract_stack()[-2][2] == 'choice':
13 | root_path = os.path.join(xvideos.root_path, page_type, dir_name)
14 | else:
15 | root_path = os.path.join(xvideos.root_path, page_type)
16 | html = xvideos.repeat_request(url, final_fail_hint='request %s final fail'%url)
17 | if html:
18 | soup = BeautifulSoup(html, 'lxml')
19 | tag_list = soup.select('div.thumb-inside div.thumb a')
20 | urls_list = ['https://www.xvideos.com'+tag['href'] for tag in tag_list]
21 | for i, url in enumerate(urls_list):
22 | print('当前页进度: %d/%d'%(i+1, len(urls_list)))
23 | print('网址: %s'%url)
24 | xvideos = down_one.Xvideos(url)
25 | xvideos.root_path = root_path
26 | xvideos.download()
27 | xvideos.ts_file_list = []
28 | print()
29 |
30 |
31 | def search_videos_pages(): #视频搜索 #n=1表示默认只下载第一页的所有视频
32 | search_key = input('请输入搜索关键字:')
33 | base_url = r'https://www.xvideos.com/?k=%s' % search_key
34 | n = input('请输入爬取页数:')
35 | for page in range(int(n)):
36 | if page != 0:
37 | url = base_url + r'&p=%d'%page #第二页的?p=1,依次类推
38 | else:
39 | url = base_url
40 | print('第%s页,共%s页' % (page+1, int(n)))
41 | download_videos_of_one_page(url, os.path.join('02-视频搜索', search_key))
42 |
43 |
44 | def best_videos_pages(): #最佳影片
45 | data = input('请输入年月,格式形如2019-06:')
46 | base_url = r'https://www.xvideos.com/best/%s/' % data
47 | n = input('请输入爬取页数:')
48 | for page in range(int(n)):
49 | if page != 0:
50 | url = base_url + str(page)
51 | else:
52 | url = base_url
53 | print('第%s页,共%s页' % (page+1, int(n)))
54 | download_videos_of_one_page(url, os.path.join('03-最佳影片', data)) #视频文件夹保存在root_path/02-最佳影片/年月
55 |
56 |
57 | def tag_videos_pages(): #视频标签0
58 | '''
59 | 标签的url的页数get传值有好几种(并不通用):
60 | 一种是关键字搜索类型的(本质上就是搜索了标签中的字),如https://www.xvideos.com/?k=3d&p=2
61 | 一种是不同的语言的、以及真·标签(tags)的,如https://www.xvideos.com/lang/chinese/2和https://www.xvideos.com/tags/big-ass/2/
62 | 还有一种形如https://www.xvideos.com/c/2/ASMR-229
63 | 类型太多,不同类型的标签名所在位置不同,提取出标签名称太麻烦,
64 | 而且中文标签可能会提取出原来的英文标签,所以就不提取了,输入网址后由使用者自行键入标签名
65 | '''
66 | #url = 'https://www.xvideos.com/c/Teen-13' ok
67 | url = input('请输入视频标签的第一页的网址:')
68 | tag_name = ''
69 | if os.path.exists('TAG NAME.txt'):
70 | with open('TAG NAME.txt','r',encoding='utf-8') as f1:
71 | for line in f1:
72 | if url+' ' in line:
73 | tag_name = re.search(r' (.*?)\n', line).group(1)#TAG NAME.txt中的一行,前为url,后为tag_name,空格间隔
74 | if input('本标签名称曾被指定为%s,是否沿用该名称?(y/n)'%tag_name) != 'y':
75 | with open('TAG NAME.txt','w',encoding='utf-8') as f2: #不沿用旧名称则将旧名称从文件中删掉
76 | for line in f1:
77 | if not url in line:
78 | f2.write(line)
79 | tag_name = input('请指定标签名称:')
80 | break
81 | if not tag_name:
82 | tag_name = input('请指定标签名称:')
83 |
84 | exists = False
85 | if os.path.exists('TAG NAME.txt'):
86 | with open('TAG NAME.txt','r',encoding='utf-8') as f:
87 | exists = False
88 | for line in f:
89 | if url in line:
90 | exists = True
91 | if not exists:
92 | with open('TAG NAME.txt','a+',encoding='utf-8') as f:
93 | f.write(url+' '+tag_name+'\n')
94 |
95 | xvideos = down_one.Xvideos()
96 | html = xvideos.repeat_request(url, final_fail_hint='request %s final fail'%url)
97 | if html:
98 | soup = BeautifulSoup(html, 'lxml')
99 | tag_list = soup.select('div.pagination ul li a')
100 | page2_url = tag_list[1]['href']
101 | page3_url = tag_list[2]['href']
102 | before = ''
103 | after = ''
104 | for i in range(len(page2_url)):
105 | if page2_url[i] != page3_url[i]: #通过比较该标签的第二页和第三页的url的不同找出页数在url中的位置 #如果视频只有一页或两页,会出错
106 | before = page2_url[:i]
107 | after = page2_url[i+1:]
108 | break
109 | if before: #如果页数在url的最后,则after是空串
110 | n = input('请输入爬取页数:')
111 | for page in range(int(n)):
112 | if page != 0:
113 | url = 'https://www.xvideos.com' + before + str(page) + after #url去除不同部分,与页数拼接得到第page页的url
114 | print(url)
115 | print('第%s页,共%s页' % (page+1, int(n)))
116 | download_videos_of_one_page(url, os.path.join('04-视频标签', tag_name)) #视频文件夹保存在root_path/02-最佳影片/年月
117 | else:
118 | print('出错了,请检查该标签的第二页和第三页的url是否存在不同')
119 |
120 |
121 | @log_exception
122 | def choice():
123 | choice_type = input('请选择批量下载的类型:\n1-单页下载 2-视频搜索\n3-最佳影片 4-视频标签\n\nPS:4-视频标签的爬取必须保证视频页数大于等于3,否则请使用1次或2次1-单页下载\n请键入对应数字:')
124 | if choice_type == '1':
125 | download_videos_of_one_page()
126 | if choice_type == '2':
127 | search_videos_pages()
128 | if choice_type == '3':
129 | best_videos_pages()
130 | if choice_type == '4':
131 | tag_videos_pages()
132 |
133 |
134 | if __name__ == '__main__':
135 | url = 'https://www.xvideos.com/'
136 | url = 'https://www.xvideos.com/history'
137 | #url = 'https://www.xvideos.com/lang/japanese' ok
138 | #url = 'https://www.xvideos.com/lang/korean/1'
139 | #search_videos_pages(2)
140 | start = time.perf_counter()
141 | choice()
142 | end = time.perf_counter()
143 | print('任务执行共%d小时%d分%.2f秒' % ((end-start)//3600,(end-start)%3600//60,(end-start)%60))
144 |
--------------------------------------------------------------------------------
/down_one.py:
--------------------------------------------------------------------------------
1 | import html
2 | import os
3 | import re
4 | import threading
5 | import time
6 |
7 | import requests
8 |
9 | import merge_ts_file
10 |
11 |
12 | class Xvideos:
13 |
14 | def __init__(self, url=''):
15 | self.url = url
16 | self.video_num = -1
17 | # self.root_path = r'xvideos' #默认根目录为本程序所在目录下的xvideos文件夹
18 | self.root_path = u'文件'
19 | self.num_thread = 10 # 默认线程
20 | self.timeout = 10 # 超时时间设置
21 | self.retry = 10 # 请求网页失败的最大重试次数
22 | self.cover_num = -1
23 | self.count = 0
24 | self.html = ''
25 | self.title = ''
26 | self.video_success = True
27 | self.wrong_ts_infor = ''
28 | self.wrong_pic_infor = ''
29 | self.pic_url_list = []
30 | self.ts_file_list = []
31 | self.final_fail_ts_file_list = []
32 |
33 | def right_url(self):
34 | if re.search(r'https?://www.xvideos.com/video\d+', self.url):
35 | return True
36 | else:
37 | print('url不正确')
38 |
39 | def should_pass(self, text_name):
40 | self.video_num = re.search(r'video(\d+)', self.url).group(1)
41 | if not os.path.exists(text_name):
42 | return False
43 | else:
44 | with open(text_name, 'r') as f:
45 | for line in f:
46 | if line[:-1] == self.video_num:
47 | if text_name == 'SAVED.txt':
48 | print('此视频已下载,跳过\n')
49 | elif text_name == 'NO EXISTS.txt':
50 | print('此视频不存在,跳过\n')
51 | return True
52 | return False
53 |
54 | def request(self, url, headers={}):
55 | default_http_proxy = '127.0.0.1:1080' if os.name == 'nt' else '127.0.0.1:8118'
56 | http_proxy = os.getenv('http_proxy') or os.getenv('HTTP_PROXY') or default_http_proxy
57 | https_proxy = os.getenv('https_proxy') or os.getenv('HTTPS_PROXY') or default_http_proxy
58 | proxies = { 'http': http_proxy, 'https': https_proxy }
59 |
60 | # if os.name == 'nt': # windows
61 | # proxies = {'http': '127.0.0.1:1080', 'https': '127.0.0.1:1080'} # ssr的win客户端采用1080端口的http协议
62 | # elif os.name == 'posix': # linux
63 | # proxies = {'http': '127.0.0.1:10809',
64 | # 'https': '127.0.0.1:10809'} # ssr+privoxy,通过privoxy将1080端口的socks协议转发给10809端口的http协议
65 |
66 | response = requests.get(url, timeout=self.timeout, proxies=proxies, headers=headers)
67 | return response.content
68 |
69 | def repeat_request(self, url, headers={}, fail_hint='', final_fail_hint=''):
70 | retry_times = 1
71 | while retry_times <= self.retry:
72 | try:
73 | response = self.request(url, headers={})
74 | return response
75 | except:
76 | if fail_hint:
77 | print(eval(fail_hint))
78 | retry_times += 1
79 | else: # while else 结构,正常时(不正常是指因为break return 异常等而退出循环)运行else内的语句
80 | if final_fail_hint:
81 | print(final_fail_hint)
82 |
83 | def mkdir(self):
84 | self.title = re.search(r'(.*?)', self.html)
85 | if self.title:
86 | self.title = self.title.group(1).rstrip()
87 | self.title = html.unescape(self.title) # 转换html实体,如…转换为省略号
88 | self.title = re.sub(r'[\/\\\*\?\|/:"<>\.]', '', self.title) # 有的html实体也会转化出非法路径字符,也要去掉
89 | print('名称:', self.title)
90 | self.dir_path = os.path.join(self.root_path, self.title)
91 | if self.dir_path[-1] == ' ': # window创建文件夹时,文件夹名以空格结尾的会自动删掉空格
92 | self.dir_path = self.dir_path[:-1]
93 | print(self.dir_path)
94 | if not os.path.exists(self.dir_path):
95 | try:
96 | os.makedirs(self.dir_path)
97 | except OSError: # linux路径过长会OSError: [Errno 36] File name too long: #可参考https://stackoverflow.com/questions/34503540/why-does-python-give-oserror-errno-36-file-name-too-long-for-filename-short/34503913
98 | dir_path_len = len(self.dir_path)
99 | while True:
100 | try:
101 | dir_path_len -= 1
102 | self.dir_path = self.dir_path[:dir_path_len]
103 | os.makedirs(self.dir_path)
104 | print(1)
105 | os.rmdir(self.dir_path) # 删除空文件夹
106 | self.dir_path = self.dir_path[:-7]
107 | print(self.dir_path)
108 | if self.dir_path[-1] == ' ':
109 | self.dir_path = self.dir_path[:-1]
110 | os.makedirs(self.dir_path) # 待会还要与‘图片’文件夹拼接
111 | print(self.dir_path)
112 | break
113 | except:
114 | pass
115 | return True
116 | else:
117 | print("No title! Maybe the video no exists! Exit!")
118 | with open('NO EXISTS.txt', 'a+', encoding='utf-8') as f:
119 | f.write(self.video_num + '\n')
120 | return False
121 |
122 | def thread_image(self, part_n):
123 | for i in range(4):
124 | pic_num = part_n * 4 + i
125 | if str(pic_num + 1) + '.jpg' in os.listdir(os.path.join(self.dir_path, '图片')):
126 | self.count += 1
127 | print("\r图片进度:%.2f%%" % (self.count / 32 * 100), end=' ')
128 | else:
129 | url = self.pic_url_list[pic_num]
130 | img = self.repeat_request(url,
131 | fail_hint='"' + str(pic_num + 1) + '.jpg fail and retry ' + '%d"%retry_times',
132 | final_fail_hint=str(pic_num + 1) + '.jpg final fail!')
133 | if img:
134 | file_path = os.path.join(self.dir_path, '图片', str(pic_num + 1) + '.jpg')
135 | with open(file_path, 'wb') as fb:
136 | fb.write(img)
137 |
138 | if pic_num + 1 == self.cover_num: # 封面图片
139 | file_path = os.path.join(self.dir_path, '1.jpg')
140 | with open(file_path, 'wb') as fb:
141 | fb.write(img)
142 | if pic_num == 30 or pic_num == 31: # 最后两张是大纲缩略图
143 | file_path = os.path.join(self.dir_path, str(pic_num - 28) + '.jpg')
144 | with open(file_path, 'wb') as fb:
145 | fb.write(img)
146 | self.count += 1
147 | print("\r图片进度:%.2f%%" % (self.count / 32 * 100), end=' ')
148 |
149 | def download_image(self):
150 | pic_dict = ['setThumbUrl169', 'setThumbSlide', 'setThumbSlideBig']
151 | for pic_key in pic_dict:
152 | if pic_key == 'setThumbUrl169':
153 | content = re.search(r"html5player\.%s\('(.*?)(\d+?)\.jpg'\);" % pic_key, self.html)
154 | pic_base_url = content.group(1)
155 | self.cover_num = int(content.group(2))
156 | for i in range(1, 31):
157 | url = pic_base_url + '%d.jpg' % i
158 | self.pic_url_list.append(url)
159 | else:
160 | keyword = r"html5player\.%s\('(.*?)'\);" % pic_key
161 | url = re.search(keyword, self.html).group(1)
162 | self.pic_url_list.append(url)
163 |
164 | thread_list = []
165 | self.count = 0
166 | if not os.path.exists(os.path.join(self.dir_path, '图片')):
167 | os.makedirs(os.path.join(self.dir_path, '图片'))
168 | for i in range(8): # 共32张图片,故开8线程,而不是沿用self.num_thread(因为担心不是整除32的,速度慢)
169 | t = threading.Thread(target=self.thread_image, kwargs={'part_n': i})
170 | t.setDaemon(True) # 设置守护进程
171 | t.start()
172 | thread_list.append(t)
173 | for t in thread_list:
174 | t.join() # 阻塞主进程,进行完所有线程后再运行主进程
175 | print()
176 |
177 | def download_preview_video(self): # 下载预览视频
178 | if not '预览.mp4' in os.listdir(self.dir_path):
179 | re_str = r'/videos/thumbs169/(.*?)/mozaique'
180 | key = re.search(re_str, self.html).group(1)
181 | url = r'https://img-hw.xvideos-cdn.com/videos/videopreview/%s_169.mp4' % key # 以后下载预览视频失败时先检查对应的解析域名是否改变了
182 | video_data = self.repeat_request(url, fail_hint='"preview_video fail and retry %d"%retry_times',
183 | final_fail_hint='preview_video final fail!')
184 | if video_data:
185 | file_path = os.path.join(self.dir_path, '预览.mp4')
186 | with open(file_path, 'wb') as f:
187 | f.write(video_data)
188 |
189 | def download_ts_file(self, ts_url):
190 | re_str = r'hls-\d{3,4}p(?:-[a-zA-Z0-9]{5})?(\d+.ts)'
191 | # 目前见过两种,相对路径的前缀分别形如hls-720p3.ts, hls-360p-ba36e0.ts
192 | ts_name = re.search(re_str, ts_url).group(1)
193 | if ts_name in os.listdir(self.dir_path):
194 | self.count += 1
195 | self.ts_file_list.append(ts_name)
196 | print("\r视频进度:%.2f%%" % (self.count / self.ts_num * 100), end=' ')
197 | else:
198 | ts_file = self.repeat_request(ts_url, headers={'Connection': 'close'},
199 | fail_hint='"' + ts_name + ' fail and retry ' + '%d"%retry_times',
200 | final_fail_hint=ts_name + ' final failed! Add it into ERROR.txt')
201 | if ts_file:
202 | file_path = os.path.join(self.dir_path, ts_name)
203 | with open(file_path, 'ab') as f:
204 | f.write(ts_file)
205 | f.flush()
206 | self.count += 1
207 | self.ts_file_list.append(ts_name)
208 | print("\r视频进度:%.2f%%" % (self.count / self.ts_num * 100), end=' ')
209 | else:
210 | with open('ERROR.txt', 'a+', encoding='utf-8') as f:
211 | f.write("{'%s': '%s'}\n" % (ts_url, self.dir_path))
212 | self.video_success = False
213 |
214 | def thread_video(self, start, end, part):
215 | for num, ts_url in enumerate(self.ts_url_list[start:end]):
216 | try:
217 | self.download_ts_file(ts_url)
218 | except:
219 | self.video_success = False
220 | raise
221 |
222 | def download_video(self): # 结构为:获取ts链接,多线程爬取,合并
223 | m3u8_url = re.search(r"html5player\.setVideoHLS\('(.*?)'\);", self.html).group(1) # 总的m3u8链接
224 | m3u8_content = self.repeat_request(m3u8_url, fail_hint="'get m3u8 fail and retry %d'%retry_times",
225 | final_fail_hint='get m3u8 fail! Exit!') # 内含不同的清晰度所对应的m3u8链接
226 | if m3u8_content:
227 | base_url = re.search(r"(.*?)hls.m3u8", m3u8_url).group(1) # 从m3u8_url中取出,留待拼接
228 | m3u8_content = m3u8_content.decode('utf-8')
229 | definition_list = re.findall(r'NAME="(.*?)p"', m3u8_content)
230 | max_definition = str(max(list(map(int,definition_list)))) # 找到最高清晰度
231 | line_list = m3u8_content.split('\n')
232 | for line in line_list:
233 | if 'hls-' in line and max_definition in line:
234 | max_definition_m3u8_url = line # 最高清晰度的m3u8链接(相对路径)
235 | max_definition_m3u8_url = base_url + max_definition_m3u8_url
236 | max_definition_m3u8_content = self.repeat_request(max_definition_m3u8_url,
237 | fail_hint="'get max_definition_m3u8 fail and retry %d'%retry_times",
238 | final_fail_hint='get max_definition_m3u8 final fail! Exit!') # 内含该m3u8视频的ts文件信息
239 | if max_definition_m3u8_content:
240 | max_definition_m3u8_content = max_definition_m3u8_content.decode('utf-8')
241 | self.ts_url_list = []
242 | for line in max_definition_m3u8_content.split('\n'):
243 | if '.ts' in line:
244 | self.ts_url_list.append(base_url + line)
245 | self.ts_num = len(self.ts_url_list)
246 | '''
247 | 拿到ts文件链接的流程是:
248 | 从视频页源代码中找到html5player.setVideoHLS,拿到总的m3u8链接(绝对路径)
249 | 请求内容,拿到不同清晰度的m3u8链接(相对路径)
250 | 找出最高清晰度的m3u8链接(相对路径)
251 | 从总的m3u8链接切割出base路径,与找出的相对路径拼接
252 | 请求内容,拿到诸多ts文件链接(相对链接)
253 | 再拼接
254 | '''
255 | if self.ts_num < self.num_thread:
256 | self.num_thread = self.ts_num # 线程数若大于ts文件数,则线程数减少到ts文件数
257 | part = self.ts_num // self.num_thread # 分块。如果不能整除,最后一块应该多几个字节
258 | thread_list = []
259 | self.count = 0
260 | for i in range(self.num_thread):
261 | start = part * i # 第part个线程的起始url下标
262 | if i == self.num_thread - 1: # 最后一块
263 | end = self.ts_num # 第part个线程的终止url下标
264 | else:
265 | end = start + part # 第part个线程的终止url下标
266 | t = threading.Thread(target=self.thread_video, kwargs={'start': start, 'end': end, 'part': part})
267 | t.setDaemon(
268 | True) # 设置守护进程;必须在start()之前设置;如果为True则主程序不用等此线程结束后再结束主程序;当我们使用setDaemon(True)方法,设置子线程为守护线程时,主线程一旦执行结束,则全部线程全部被终止执行,可能出现的情况就是,子线程的任务还没有完全执行结束,就被迫停止
269 | t.start()
270 | thread_list.append(t)
271 | # 等待所有线程下载完成
272 | for t in thread_list:
273 | t.join() # 阻塞主进程,进行完所有线程后再运行主进程
274 |
275 | if self.video_success:
276 | merge_ts_file.merge(self.ts_file_list, self.dir_path, self.title + '.mp4')
277 | if ((self.title + '.mp4' in os.listdir(self.dir_path) and
278 | os.path.getsize(os.path.join(self.dir_path,
279 | self.title + '.mp4')) > 0) or # 只有合并了才算成功(存在'title'.ts或是av.mp4且大小不为0)
280 | ('av.mp4' in os.listdir(self.dir_path) and # av.mp4是路径过长而无法改名导致的
281 | os.path.getsize(os.path.join(self.dir_path, 'av.mp4')) > 0)):
282 | print('\n%s 合并成功\n' % self.title) # 视频下载完成就算任务完成,图片和预览视频允许失败
283 | with open('SAVED.txt', 'a+', encoding='utf-8') as f:
284 | f.write(str(self.video_num) + '\n')
285 | else:
286 | with open('merge fail.txt', 'w', encoding='utf-8') as f:
287 | f.write(self.video_num + '\n')
288 | if self.final_fail_ts_file_list:
289 | for i in self.final_fail_ts_file_list:
290 | print(i, end=' ')
291 | print('final fail! NO merge ts_file!')
292 | print(self.title + ' 失败结束')
293 |
294 | def write(self):
295 | file_path = os.path.join(self.dir_path, 'information.txt')
296 | with open(file_path, 'w', encoding='utf-8') as f:
297 | f.write('标题:\n%s\n网址:\n%s\n' % (self.title, self.url))
298 |
299 | def download(self):
300 | if self.right_url() and not self.should_pass('SAVED.txt') and not self.should_pass('NO EXISTS.txt'):
301 | self.count = 0
302 | self.html = self.repeat_request(self.url, fail_hint="'get html fail and retry %d'%retry_times",
303 | final_fail_hint='get html fianl fail! Exit!')
304 | if self.html:
305 | self.html = self.html.decode('utf-8')
306 | if self.mkdir():
307 | self.download_image()
308 | self.download_preview_video()
309 | self.download_video()
310 | self.write()
311 | return True
312 |
313 |
314 | if __name__ == '__main__':
315 | # url = input('请输入网址:\n')
316 | url = 'https://www.xvideos.com/video35904115/who_is_this_girl_'
317 | start = time.perf_counter()
318 | xvideos = Xvideos(url)
319 | xvideos.download()
320 | end = time.perf_counter()
321 | print('任务执行共%d小时%d分%.2f秒' % ((end - start) // 3600, (end - start) % 3600 // 60, (end - start) % 60))
322 |
--------------------------------------------------------------------------------
/SAVED.txt:
--------------------------------------------------------------------------------
1 | 47859095
2 | 31640165
3 | 37854819
4 | 40410019
5 | 45600061
6 | 38585323
7 | 27179461
8 | 26060377
9 | 15247349
10 | 44559489
11 | 29963269
12 | 24710791
13 | 31647053
14 | 44640141
15 | 42198759
16 | 29647931
17 | 20333917
18 | 25757509
19 | 30731971
20 | 36877707
21 | 39886539
22 | 40195511
23 | 46715363
24 | 41594843
25 | 37492843
26 | 29209813
27 | 42050733
28 | 42017723
29 | 48446099
30 | 33283985
31 | 39004097
32 | 26200813
33 | 21635571
34 | 40179715
35 | 49331025
36 | 48999093
37 | 28052077
38 | 49225765
39 | 26040399
40 | 37490457
41 | 39298400
42 | 37604627
43 | 48738655
44 | 33913159
45 | 27635043
46 | 28388183
47 | 40408321
48 | 49112671
49 | 49220255
50 | 20606417
51 | 20781759
52 | 48352493
53 | 48316191
54 | 47315817
55 | 47915723
56 | 25935975
57 | 27915937
58 | 28332451
59 | 24370845
60 | 32529887
61 | 49128459
62 | 39786485
63 | 36898941
64 | 48370245
65 | 41904605
66 | 25098593
67 | 25968965
68 | 43842621
69 | 10793389
70 | 48608809
71 | 30116441
72 | 37095375
73 | 35474961
74 | 6906911
75 | 30678391
76 | 30705193
77 | 41689431
78 | 48350381
79 | 29174823
80 | 8459334
81 | 8642988
82 | 29664877
83 | 33018949
84 | 22889047
85 | 455920
86 | 35904929
87 | 20868507
88 | 41779173
89 | 39636391
90 | 26237493
91 | 27797373
92 | 10090192
93 | 34328693
94 | 19979327
95 | 45559526
96 | 48099711
97 | 42066239
98 | 48300218
99 | 49284073
100 | 48260580
101 | 49220923
102 | 48696097
103 | 30659975
104 | 22992453
105 | 9539615
106 | 49132081
107 | 21547891
108 | 30994821
109 | 32835995
110 | 47587647
111 | 46751691
112 | 48172853
113 | 46243641
114 | 46429813
115 | 46749449
116 | 47251043
117 | 46294127
118 | 32769301
119 | 33925273
120 | 48160511
121 | 47894767
122 | 37523287
123 | 33807423
124 | 41885725
125 | 44779013
126 | 40864831
127 | 12419215
128 | 46062755
129 | 46587199
130 | 49304957
131 | 48242736
132 | 49185457
133 | 48459853
134 | 29363473
135 | 40314789
136 | 40712405
137 | 31488765
138 | 40421333
139 | 40575215
140 | 34202565
141 | 9959049
142 | 40769039
143 | 23166529
144 | 38041841
145 | 33822639
146 | 39817043
147 | 40728929
148 | 40729911
149 | 26088907
150 | 48457199
151 | 36807709
152 | 48660859
153 | 46140239
154 | 40652121
155 | 48004549
156 | 32437747
157 | 48456837
158 | 39903995
159 | 48457147
160 | 44445153
161 | 48456629
162 | 37352443
163 | 49112803
164 | 32695385
165 | 48394227
166 | 48454503
167 | 47462467
168 | 47670261
169 | 41817801
170 | 34395323
171 | 11261418
172 | 40807117
173 | 40749727
174 | 41666493
175 | 34969499
176 | 28274243
177 | 49118725
178 | 32952213
179 | 48898441
180 | 48750301
181 | 36287007
182 | 46222033
183 | 46943799
184 | 47960005
185 | 47731713
186 | 46607523
187 | 44685381
188 | 47862255
189 | 47861675
190 | 45770077
191 | 40447599
192 | 10017722
193 | 47878615
194 | 47884699
195 | 46982545
196 | 46462967
197 | 41921649
198 | 47859095
199 | 48459297
200 | 37854819
201 | 42437865
202 | 42513591
203 | 49503375
204 | 46147473
205 | 47451607
206 | 46711453
207 | 44166843
208 | 48890103
209 | 47963415
210 | 48933247
211 | 46900073
212 | 46720335
213 | 48313121
214 | 45882511
215 | 28034445
216 | 48459213
217 | 48742575
218 | 49060629
219 | 48937505
220 | 49212061
221 | 28119873
222 | 49059553
223 | 48460013
224 | 48844919
225 | 49384037
226 | 47480587
227 | 49662437
228 | 44466003
229 | 49666909
230 | 18673279
231 | 40651247
232 | 48567143
233 | 48221240
234 | 46430765
235 | 49361177
236 | 47440305
237 | 49154489
238 | 37618409
239 | 46360637
240 | 46840301
241 | 47084545
242 | 49163589
243 | 13284627
244 | 48911163
245 | 36819585
246 | 45520229
247 | 44449433
248 | 48829851
249 | 48196115
250 | 48075837
251 | 48137041
252 | 37130879
253 | 48138061
254 | 33472393
255 | 45790613
256 | 42154177
257 | 37119227
258 | 48241646
259 | 37131313
260 | 35593249
261 | 48076015
262 | 33472453
263 | 37131565
264 | 33740935
265 | 32932365
266 | 46237601
267 | 34391929
268 | 33930861
269 | 49480865
270 | 46362665
271 | 45013603
272 | 45911803
273 | 49712689
274 | 48431799
275 | 47951183
276 | 48236412
277 | 48679797
278 | 48276498
279 | 48573521
280 | 48448765
281 | 48685647
282 | 48282828
283 | 48257234
284 | 48251338
285 | 48460347
286 | 48564123
287 | 48335829
288 | 48445267
289 | 48261686
290 | 48294068
291 | 48328639
292 | 48408851
293 | 48259318
294 | 47546423
295 | 48852531
296 | 48295736
297 | 47740571
298 | 47823629
299 | 47383335
300 | 47700133
301 | 47868675
302 | 47579477
303 | 47801873
304 | 47757157
305 | 47579519
306 | 47658231
307 | 47382299
308 | 47382777
309 | 47908071
310 | 47721805
311 | 47740177
312 | 47911383
313 | 47383591
314 | 47611233
315 | 47737057
316 | 48243378
317 | 47864395
318 | 47885607
319 | 48174231
320 | 47599093
321 | 47874077
322 | 47878971
323 | 47919897
324 | 47411177
325 | 46676983
326 | 47355851
327 | 46561783
328 | 46595141
329 | 46739349
330 | 47401181
331 | 46678209
332 | 46708387
333 | 47339651
334 | 47498281
335 | 46573083
336 | 47481397
337 | 46930779
338 | 47419149
339 | 46849071
340 | 46600259
341 | 46688853
342 | 47418259
343 | 47476907
344 | 47496721
345 | 47299141
346 | 46975415
347 | 47510775
348 | 46627267
349 | 46464603
350 | 47496919
351 | 46068035
352 | 45867141
353 | 46250361
354 | 46035355
355 | 46259663
356 | 46267465
357 | 46343931
358 | 46103733
359 | 45996757
360 | 45889193
361 | 46040637
362 | 45983371
363 | 45893199
364 | 45824673
365 | 46051409
366 | 46260839
367 | 45944877
368 | 45971101
369 | 45861683
370 | 45844823
371 | 46152291
372 | 46424259
373 | 46094145
374 | 46062917
375 | 46019857
376 | 46385433
377 | 45908299
378 | 45563859
379 | 45695239
380 | 45349957
381 | 45128461
382 | 45747763
383 | 45464035
384 | 45691531
385 | 44952791
386 | 45115489
387 | 45463375
388 | 45527560
389 | 45457657
390 | 45579251
391 | 45486307
392 | 45231895
393 | 45662639
394 | 45549508
395 | 45274515
396 | 45723675
397 | 44914333
398 | 45070115
399 | 45523560
400 | 44854505
401 | 45721953
402 | 44918333
403 | 45033601
404 | 45159689
405 | 43938073
406 | 43869177
407 | 44201401
408 | 43748149
409 | 43908355
410 | 44481751
411 | 44763903
412 | 44662825
413 | 43881025
414 | 43548989
415 | 44503023
416 | 44619575
417 | 44204259
418 | 44097799
419 | 44731511
420 | 44494195
421 | 44597301
422 | 44159439
423 | 43959393
424 | 44768435
425 | 43549033
426 | 44715933
427 | 43973591
428 | 43756563
429 | 43382075
430 | 44358555
431 | 44476991
432 | 44017373
433 | 43989347
434 | 43413835
435 | 44843577
436 | 43835915
437 | 44035285
438 | 44113891
439 | 44042725
440 | 44689449
441 | 44397225
442 | 44113903
443 | 43562643
444 | 44440505
445 | 44703669
446 | 44679501
447 | 43775783
448 | 44440297
449 | 44017555
450 | 44397247
451 | 43374807
452 | 44864389
453 | 43892191
454 | 44695763
455 | 44436551
456 | 44535119
457 | 44672549
458 | 44493033
459 | 32891617
460 | 33163895
461 | 32795789
462 | 32739485
463 | 33440777
464 | 33228271
465 | 32842193
466 | 33272309
467 | 32853307
468 | 32842153
469 | 33413945
470 | 32781225
471 | 33105807
472 | 33387405
473 | 32996407
474 | 33129945
475 | 32768977
476 | 33016923
477 | 32819743
478 | 32763549
479 | 32984111
480 | 32848581
481 | 33528781
482 | 33130569
483 | 33158943
484 | 33463849
485 | 33257967
486 | 34010559
487 | 34167809
488 | 34165325
489 | 34063193
490 | 33957135
491 | 34297199
492 | 33956387
493 | 34260097
494 | 33685013
495 | 33944173
496 | 33944701
497 | 34108103
498 | 34285153
499 | 34198467
500 | 34231069
501 | 34107723
502 | 33690419
503 | 33869129
504 | 33836201
505 | 34217079
506 | 34244091
507 | 33658957
508 | 34200119
509 | 33828601
510 | 33707409
511 | 34287685
512 | 33734495
513 | 35057977
514 | 35092087
515 | 34359911
516 | 34872677
517 | 34345551
518 | 35166747
519 | 34961027
520 | 34840151
521 | 34346075
522 | 34868067
523 | 34469833
524 | 35102343
525 | 34760577
526 | 34719833
527 | 34499195
528 | 34653223
529 | 34751993
530 | 34940435
531 | 34747501
532 | 35046663
533 | 34607905
534 | 34695945
535 | 34545611
536 | 34399129
537 | 34495981
538 | 34342031
539 | 35789343
540 | 35654147
541 | 35410543
542 | 35653269
543 | 35471795
544 | 35304061
545 | 35378161
546 | 35236151
547 | 35758041
548 | 35683847
549 | 35372727
550 | 35597651
551 | 35731623
552 | 35388231
553 | 35660173
554 | 35249353
555 | 35286051
556 | 35714937
557 | 35219079
558 | 35337625
559 | 35500163
560 | 35679217
561 | 35188151
562 | 35288483
563 | 35732615
564 | 35417845
565 | 35417823
566 | 35870357
567 | 36111915
568 | 36096621
569 | 35963847
570 | 36251561
571 | 36148957
572 | 36160813
573 | 36028901
574 | 36077987
575 | 35887003
576 | 36254985
577 | 36345921
578 | 36034633
579 | 36192587
580 | 36231915
581 | 36158457
582 | 35861955
583 | 36499073
584 | 36234087
585 | 36416533
586 | 36041103
587 | 36090605
588 | 36237009
589 | 36481503
590 | 36545447
591 | 36148553
592 | 36911271
593 | 36682961
594 | 37151611
595 | 36906025
596 | 37062133
597 | 37139565
598 | 36836311
599 | 37122359
600 | 36822141
601 | 37150539
602 | 36720027
603 | 36686849
604 | 37179855
605 | 36971335
606 | 36995451
607 | 37013975
608 | 36742105
609 | 36592469
610 | 36644061
611 | 37270495
612 | 36851693
613 | 36739193
614 | 36851033
615 | 36841355
616 | 36668509
617 | 36775233
618 | 36655985
619 | 38111519
620 | 37437879
621 | 37511589
622 | 37751767
623 | 37459521
624 | 37992989
625 | 37403501
626 | 37778327
627 | 37930341
628 | 37989161
629 | 37339369
630 | 37420371
631 | 37967091
632 | 37681471
633 | 37611631
634 | 37361243
635 | 37770521
636 | 37855191
637 | 37961651
638 | 37554461
639 | 37977253
640 | 38127641
641 | 37426087
642 | 37944663
643 | 37417351
644 | 37781847
645 | 37497691
646 | 38919745
647 | 38531315
648 | 38181329
649 | 38553889
650 | 38769171
651 | 38319555
652 | 38169085
653 | 38229593
654 | 38243927
655 | 38755239
656 | 38547397
657 | 38308055
658 | 38990781
659 | 38388531
660 | 38313237
661 | 39019876
662 | 38757921
663 | 38898765
664 | 38560411
665 | 38750063
666 | 38718739
667 | 38620375
668 | 38772497
669 | 38947387
670 | 38940865
671 | 39059974
672 | 38226491
673 | 39259856
674 | 39632597
675 | 39331464
676 | 39859329
677 | 39517172
678 | 38149605
679 | 38558023
680 | 38307017
681 | 40012477
682 | 39148732
683 | 39535419
684 | 39862641
685 | 39673181
686 | 40010395
687 | 39491558
688 | 39127484
689 | 39916419
690 | 40012601
691 | 39593067
692 | 39581465
693 | 39716901
694 | 39367268
695 | 39959237
696 | 39987975
697 | 39920081
698 | 39291316
699 | 39510604
700 | 40033173
701 | 39702747
702 | 39396812
703 | 39128054
704 | 39127160
705 | 40012435
706 | 39546963
707 | 39499216
708 | 39652017
709 | 40544755
710 | 40432597
711 | 40652789
712 | 40316791
713 | 40365503
714 | 40654997
715 | 40764587
716 | 40406185
717 | 40224093
718 | 40277885
719 | 40396763
720 | 40985385
721 | 40389113
722 | 40260189
723 | 40901105
724 | 40754101
725 | 40203241
726 | 40400317
727 | 40939143
728 | 40357827
729 | 41134565
730 | 40537397
731 | 40418435
732 | 41103355
733 | 40400323
734 | 40570011
735 | 40881727
736 | 42072787
737 | 41836535
738 | 41289973
739 | 41718515
740 | 41955683
741 | 41719621
742 | 41712527
743 | 41469259
744 | 41691299
745 | 41616177
746 | 41975997
747 | 41565131
748 | 42149799
749 | 41929627
750 | 41976211
751 | 42169743
752 | 41632661
753 | 41840911
754 | 42123967
755 | 41712393
756 | 41874237
757 | 41781877
758 | 41603619
759 | 41736273
760 | 42780509
761 | 42233191
762 | 42835295
763 | 42642387
764 | 42270771
765 | 42244987
766 | 42913071
767 | 43021779
768 | 43018373
769 | 42915227
770 | 43058543
771 | 42646293
772 | 42714193
773 | 42273691
774 | 43135411
775 | 42742809
776 | 42789827
777 | 42331849
778 | 42482353
779 | 42565051
780 | 42987363
781 | 42819841
782 | 42886295
783 | 43303539
784 | 42359379
785 | 42572125
786 | 43046939
787 | 49302139
788 | 32730921
789 | 33902067
790 | 39004329
791 | 39533053
792 | 48959125
793 | 49042443
794 | 47586017
795 | 48959123
796 | 48289318
797 | 48844003
798 | 48959987
799 | 48930271
800 | 49042419
801 | 49042551
802 | 49042503
803 | 35226889
804 | 11591933
805 | 49690957
806 | 48197433
807 | 48845345
808 | 45465421
809 | 48292114
810 | 47752899
811 | 43672461
812 | 48584345
813 | 44728129
814 | 37097315
815 | 35080029
816 | 34504521
817 | 30072673
818 | 37288543
819 | 37373463
820 | 32767047
821 | 40506041
822 | 49632091
823 | 49213855
824 | 49286267
825 | 49234555
826 | 31482161
827 | 49313665
828 | 48318725
829 | 46838183
830 | 48459929
831 | 49394029
832 | 48933805
833 | 49393567
834 | 34601675
835 | 49258923
836 | 49196529
837 | 38496073
838 | 38496215
839 | 38518377
840 | 32555765
841 | 28549839
842 | 20724027
843 | 28735349
844 | 29120803
845 | 15762983
846 | 23004709
847 | 24156613
848 | 20817931
849 | 35203277
850 | 24289373
851 | 24392593
852 | 27892881
853 | 32759437
854 | 32360013
855 | 31085593
856 | 33895543
857 | 37171991
858 | 30818221
859 | 31085855
860 | 31415767
861 | 35202505
862 | 34228421
863 | 29965863
864 | 30710041
865 | 30543255
866 | 30958323
867 | 29258397
868 | 32056793
869 | 21224065
870 | 10019921
871 | 10639064
872 | 25250701
873 | 16775779
874 | 8600571
875 | 28629233
876 | 22295535
877 | 21181857
878 | 10272023
879 | 10272070
880 | 13943049
881 | 33979785
882 | 30267587
883 | 24713273
884 | 9774463
885 | 1303011
886 | 1303030
887 | 9023115
888 | 1303015
889 | 11831601
890 | 23354672
891 | 32321063
892 | 32295449
893 | 32322413
894 | 1300813
895 | 31409663
896 | 30376479
897 | 30829879
898 | 23133241
899 | 39563075
900 | 41126383
901 | 39913949
902 | 39913977
903 | 39443602
904 | 39576981
905 | 34872149
906 | 34455359
907 | 10637158
908 | 30251023
909 | 29487323
910 | 27479399
911 | 27479375
912 | 25766815
913 | 16998939
914 | 20652879
915 | 27750431
916 | 31829513
917 | 29739975
918 | 29194233
919 | 18555527
920 | 18487285
921 | 28732775
922 | 29437831
923 | 34642137
924 | 29557715
925 | 28429305
926 | 29524071
927 | 22490829
928 | 27876097
929 | 35071653
930 | 34587533
931 | 34424947
932 | 33877357
933 | 41752587
934 | 45289191
935 | 42963147
936 | 40055019
937 | 41532729
938 | 37221897
939 | 15127289
940 | 39569907
941 | 39804077
942 | 38437615
943 | 31478591
944 | 31286317
945 | 28687427
946 | 24935033
947 | 32616035
948 | 40660193
949 | 34455447
950 | 33709273
951 | 30968229
952 | 31056919
953 | 37752575
954 | 34185881
955 | 34014099
956 | 34083543
957 | 33776957
958 | 25178893
959 | 35298129
960 | 26929017
961 | 35659195
962 | 29074475
963 | 34104415
964 | 29562415
965 | 28949063
966 | 22283727
967 | 32070825
968 | 38419185
969 | 34198415
970 | 32799739
971 | 31478743
972 | 28737153
973 | 28825983
974 | 23610096
975 | 41167657
976 | 38644795
977 | 40413383
978 | 40540663
979 | 40575327
980 | 39945353
981 | 40484431
982 | 40089941
983 | 40032071
984 | 40001789
985 | 40001693
986 | 39847671
987 | 39817923
988 | 39689427
989 | 40064229
990 | 35271627
991 | 39945357
992 | 40032063
993 | 34564471
994 | 34256223
995 | 24123057
996 | 25373555
997 | 26657621
998 | 25486235
999 | 25968347
1000 | 22769635
1001 | 19975187
1002 | 18506797
1003 | 14921697
1004 | 18634121
1005 | 16807871
1006 | 16277741
1007 | 18631041
1008 | 20213195
1009 | 22995653
1010 | 25828841
1011 | 14802807
1012 | 24725039
1013 | 25945499
1014 | 19494839
1015 | 15909121
1016 | 34963659
1017 | 34255287
1018 | 40032193
1019 | 40238245
1020 | 40238235
1021 | 40575303
1022 | 39944673
1023 | 40238103
1024 | 40237943
1025 | 40002231
1026 | 36264557
1027 | 40574861
1028 | 40089849
1029 | 40443703
1030 | 39944663
1031 | 40575183
1032 | 39944809
1033 | 40575313
1034 | 40413013
1035 | 15478655
1036 | 28781607
1037 | 22238845
1038 | 25615819
1039 | 27974609
1040 | 18298957
1041 | 28684647
1042 | 36980701
1043 | 40238247
1044 | 39944523
1045 | 39972417
1046 | 39911181
1047 | 39911311
1048 | 39911067
1049 | 35182157
1050 | 34871223
1051 | 32042535
1052 | 30729771
1053 | 30729757
1054 | 30729761
1055 | 30729777
1056 | 24219997
1057 | 25315169
1058 | 572789
1059 | 1753702
1060 | 1491177
1061 | 2368204
1062 | 29744219
1063 | 30611477
1064 | 4154396
1065 | 20390239
1066 | 29448117
1067 | 28918483
1068 | 6113156
1069 | 24371011
1070 | 23961662
1071 | 28506745
1072 | 28334295
1073 | 27896483
1074 | 28056901
1075 | 37057027
1076 | 37169311
1077 | 29405365
1078 | 32448049
1079 | 28551841
1080 | 14825601
1081 | 17709749
1082 | 28686731
1083 | 36787335
1084 | 31478993
1085 | 14061679
1086 | 14062617
1087 | 29001765
1088 | 14063047
1089 | 27841653
1090 | 27842169
1091 | 26603039
1092 | 10017215
1093 | 25474035
1094 | 7113789
1095 | 25216883
1096 | 14061935
1097 | 17440707
1098 | 17125983
1099 | 27628423
1100 | 22899223
1101 | 26553065
1102 | 24814247
1103 | 23708828
1104 | 14383705
1105 | 29664901
1106 | 11798177
1107 | 13307039
1108 | 20651543
1109 | 22700397
1110 | 15750423
1111 | 25661873
1112 | 26163539
1113 | 33797139
1114 | 33737759
1115 | 29629131
1116 | 32776639
1117 | 40413667
1118 | 39944833
1119 | 41555337
1120 | 35965159
1121 | 38784861
1122 | 32377007
1123 | 25706583
1124 | 34103229
1125 | 42407467
1126 | 39673701
1127 | 39788869
1128 | 15181745
1129 | 34255291
1130 | 39078718
1131 | 38863933
1132 | 40413645
1133 | 39819223
1134 | 40412803
1135 | 39665685
1136 | 46235373
1137 | 40259387
1138 | 39081504
1139 | 29245335
1140 | 29660709
1141 | 16755305
1142 | 18555575
1143 | 24873101
1144 | 20591257
1145 | 24284145
1146 | 39908667
1147 | 33550433
1148 | 35599009
1149 | 35483849
1150 | 33414571
1151 | 35599387
1152 | 27568791
1153 | 24910753
1154 | 30461965
1155 | 30461759
1156 | 27568895
1157 | 28953991
1158 | 43911585
1159 | 37725073
1160 | 35754139
1161 | 35826349
1162 | 35826027
1163 | 35880715
1164 | 34546475
1165 | 31831345
1166 | 31812505
1167 | 34621893
1168 | 35016495
1169 | 31367189
1170 | 33448767
1171 | 27218155
1172 | 35599129
1173 | 30364401
1174 | 35825307
1175 | 36085711
1176 | 36311673
1177 | 36401903
1178 | 35378513
1179 | 36508977
1180 | 40273495
1181 | 40275941
1182 | 36086005
1183 | 39882993
1184 | 33501577
1185 | 12025333
1186 | 33446047
1187 | 30694183
1188 | 39773715
1189 | 39770233
1190 | 38579455
1191 | 34170979
1192 | 20948781
1193 | 34235055
1194 | 30599291
1195 | 48607849
1196 | 48608121
1197 | 48676469
1198 | 48114161
1199 | 48114401
1200 | 48444677
1201 | 47903519
1202 | 26977357
1203 | 46178425
1204 | 47543211
1205 | 31410733
1206 | 31549371
1207 | 9398607
1208 | 27685389
1209 | 31433477
1210 | 30755529
1211 | 30521641
1212 | 9856801
1213 | 25366509
1214 | 26577557
1215 | 19242627
1216 | 406189
1217 | 48130919
1218 | 46695605
1219 | 38996791
1220 | 39782045
1221 | 39176972
1222 | 39718565
1223 | 39663931
1224 | 39177986
1225 | 39054860
1226 | 39174242
1227 | 34544843
1228 | 30463597
1229 | 43763059
1230 | 33178597
1231 | 25063383
1232 | 29703769
1233 | 28615849
1234 | 46587599
1235 | 41918357
1236 | 49232121
1237 | 49393887
1238 | 48209040
1239 | 47757145
1240 | 47757315
1241 | 47757249
1242 | 38599387
1243 | 45852813
1244 | 48817259
1245 | 45744189
1246 | 48114557
1247 | 48114697
1248 | 45667047
1249 | 34226553
1250 | 36752173
1251 | 37189351
1252 | 38250693
1253 | 37095489
1254 | 36114681
1255 | 32596885
1256 | 30729913
1257 | 39728783
1258 | 45600063
1259 | 36099195
1260 | 36194303
1261 | 8653193
1262 | 20421139
1263 | 36954697
1264 | 32777623
1265 | 32777649
1266 | 32220561
1267 | 31328247
1268 | 27745187
1269 | 37030091
1270 | 35495407
1271 | 35490955
1272 | 42790283
1273 | 36670353
1274 | 42926483
1275 | 30309043
1276 | 30309255
1277 | 33079935
1278 | 47455835
1279 | 48113895
1280 | 48128565
1281 | 48113845
1282 | 48458451
1283 | 35902031
1284 | 42048335
1285 | 17609395
1286 | 45679687
1287 | 49255365
1288 | 48015763
1289 | 44825643
1290 | 40989281
1291 | 37131231
1292 | 36311707
1293 | 44709273
1294 | 45267505
1295 | 40842877
1296 | 48128627
1297 | 48194371
1298 | 49820339
1299 | 49305483
1300 | 44450977
1301 | 48829065
1302 | 49022713
1303 | 46483789
1304 | 47128135
1305 | 46258927
1306 | 30110173
1307 | 20113297
1308 | 29955813
1309 | 17609423
1310 | 49747649
1311 | 48525391
1312 | 48591167
1313 | 40071921
1314 | 31983279
1315 | 18544627
1316 | 33168679
1317 | 39859099
1318 | 27603471
1319 |
--------------------------------------------------------------------------------
/ERROR.txt:
--------------------------------------------------------------------------------
1 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p5.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
2 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p28.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
3 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p21.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
4 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p37.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
5 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p25.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
6 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p33.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
7 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p8.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
8 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p12.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
9 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p0.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
10 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p16.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
11 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p22.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
12 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p29.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
13 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p1.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
14 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p13.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
15 | {'https://hls3-l3.xvideos-cdn.com/5b73fdfa80b74549d8012b4696b14cbc14127c2d-1563956001/videos/hls/9b/18/8b/9b188b1df9054177740513e411699587/hls-720p17.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Hooker gets off the snowy streets by anally pleasing her pimp'}
16 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p281.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
17 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p416.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
18 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p286.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
19 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p529.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
20 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p69.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
21 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p179.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
22 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p427.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
23 | {'https://vid-egc.xvideos-cdn.com/videos/hls/4d/5b/88/4d5b885f3e99fde0b45522506aa4fc4b/hls-720p80.ts?jmQoXSELri3Yimp6AiHdu7i_lsloBWGym16XBSYIi2v_goXtl-hMIilJMuNHwocqfJQog0YZpddSP4RBPb9j6XxZ16GpzlPudT89SlUng0Xw3go_6XgOYojKInHaaDtE4jVDCqXVbN0CAE8_4-rdrSdXUw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\cô vợ dâm đãng'}
24 | {'https://hls4-l3.xvideos-cdn.com/50d936379f3898813eb4bf087cdd331aa14e156d-1563961891/videos/hls/5f/4f/a5/5f4fa5bc0225cf0dbfb7aec4ce1637f9/hls-720p465.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Japanese RINA ISHIHARA get fucked by old man - wwwAdultisPorncom'}
25 | {'https://hls4-l3.xvideos-cdn.com/50d936379f3898813eb4bf087cdd331aa14e156d-1563961891/videos/hls/5f/4f/a5/5f4fa5bc0225cf0dbfb7aec4ce1637f9/hls-720p644.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-05\Japanese RINA ISHIHARA get fucked by old man - wwwAdultisPorncom'}
26 | {'https://hls3-l3.xvideos-cdn.com/47c574a27268196ca76e91639840c2ea4ca9b49a-1564753283/videos/hls/50/1c/f6/501cf617731b6c1b184868978b6abb0f/hls-720p11.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-06\Miss PYT VS Bk Brick Big Dick Challenge'}
27 | {'https://hls3-l3.xvideos-cdn.com/47c574a27268196ca76e91639840c2ea4ca9b49a-1564753283/videos/hls/50/1c/f6/501cf617731b6c1b184868978b6abb0f/hls-720p7.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-06\Miss PYT VS Bk Brick Big Dick Challenge'}
28 | {'https://hls3-l3.xvideos-cdn.com/47c574a27268196ca76e91639840c2ea4ca9b49a-1564753283/videos/hls/50/1c/f6/501cf617731b6c1b184868978b6abb0f/hls-720p15.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2019-06\Miss PYT VS Bk Brick Big Dick Challenge'}
29 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p36.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
30 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p37.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
31 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p38.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
32 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p39.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
33 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p40.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
34 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p41.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
35 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p42.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
36 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p43.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
37 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p44.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
38 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p45.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
39 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p46.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
40 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p47.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
41 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p48.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
42 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p49.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
43 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p50.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
44 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p51.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
45 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p52.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
46 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p53.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
47 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p54.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
48 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p55.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
49 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p56.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
50 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p57.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
51 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p58.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
52 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p59.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
53 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p60.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
54 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p61.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
55 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p62.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
56 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p63.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
57 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p64.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
58 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p65.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
59 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p66.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
60 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p67.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
61 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p68.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
62 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p69.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
63 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p70.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
64 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p71.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
65 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p72.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
66 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p73.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
67 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p74.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
68 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p75.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
69 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p76.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
70 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p77.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
71 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p78.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
72 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p79.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
73 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p80.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
74 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p81.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
75 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p82.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
76 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p83.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
77 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p84.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
78 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p85.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
79 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p86.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
80 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p87.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
81 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p88.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
82 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p89.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
83 | {'https://vid-egc.xvideos-cdn.com/videos/hls/87/1b/00/871b00b938e24ea34b70a8ca2d89cd8e/hls-720p90.ts?IWHu9Yi0ntVEDXIXlViZNAPSXQXSFWneIxeqINhQ5TI6hQfkBlETHuuXDbN3BQ3UrR-blGWivxdhbea3TxiWrsscEtqBdFP75IRTHniSdYKjPXmONsufEsrMZjAH5ru_OpdWl4HaASbqnqBk3ANrL5IMSw': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-02\18 year old gets monster black dick'}
84 | {'https://hls1-l3.xvideos-cdn.com/035fef8f67958e2432ed878a2db6e60c85a7e299-1565433775/videos/hls/80/1e/4a/801e4a35cab3fac30eeb7ab4d10b2b09/hls-720p42.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-05\BANGBROS - Macana Man's Big Black Dick Buried Deep Inside Kelsi Monroe's Phat Ass'}
85 | {'https://hls1-l3.xvideos-cdn.com/035fef8f67958e2432ed878a2db6e60c85a7e299-1565433775/videos/hls/80/1e/4a/801e4a35cab3fac30eeb7ab4d10b2b09/hls-720p21.ts': 'E:\仓殷禀阜\xvideos\03-最佳影片\2018-05\BANGBROS - Macana Man's Big Black Dick Buried Deep Inside Kelsi Monroe's Phat Ass'}
86 |
--------------------------------------------------------------------------------
/xvideos_urls.txt:
--------------------------------------------------------------------------------
1 | https://www.xvideos.com/video25098593/overwatch_petite_widowmaker#_tabComments
2 | https://www.xvideos.com/video28388183/honey_select_-_classroom_gameplay_01
3 | https://www.xvideos.com/video29707043/hitomi_fujiwara_crying_cause_3_mans_action_
4 | https://www.xvideos.com/video27635043/honey_select_12_javgame_
5 | https://www.xvideos.com/video25935975/korean_busty_girl_shows_her_hot_body
6 | https://www.xvideos.com/video32709077/_18_part_1_-_52888ppp.com_
7 | https://www.xvideos.com/video32305077/20_av_~_part_1_-_52888ppp.com_
8 | https://www.xvideos.com/video34354229/_
9 | https://www.xvideos.com/video34431449/_
10 | https://www.xvideos.com/video32418785/_part_1_-_52888ppp.com_#_tabDownload
11 | https://www.xvideos.com/video31534257/_
12 | https://www.xvideos.com/video32656369/7hang.com_#_tabDownload
13 | https://www.xvideos.com/video20333917/asian_teen_gets_creampie#_tabDownload
14 | https://www.xvideos.com/video26040399/gorgeous_korean_girl_fucked_in_movie#_tabDownload
15 | https://www.xvideos.com/video22889047/tap2
16 | https://www.xvideos.com/video35904929/teen_girl_secrect_fuck_her_sister_s_boyfriend_when_sleeping
17 | https://www.xvideos.com/video28332451/korean_porn_hot_redheaded_korean_babe
18 | https://www.xvideos.com/video31488599/_-_javbobo.com#_tabDownload
19 | https://www.xvideos.com/video6906911/snsd_yoona
20 | https://www.xvideos.com/video32155909/_18av.cc
21 | https://www.xvideos.com/video32656341/7hang.com_-_-_#_tabDownload
22 | https://www.xvideos.com/video32966525/7hang.com_90_#_tabDownload
23 | https://www.xvideos.com/video37838351/_
24 | https://www.xvideos.com/video39971687/_
25 | https://www.xvideos.com/video32835995/_
26 | https://www.xvideos.com/video31695049/_
27 | https://www.xvideos.com/video39749275/_800_99_._
28 | https://www.xvideos.com/video38903409/_-_mmmy5800#_tabDownload
29 | https://www.xvideos.com/video39282144/_
30 | https://www.xvideos.com/video35664227/170cm_
31 | https://www.xvideos.com/video31488765/_~_-_javbobo.com
32 | https://www.xvideos.com/video34510003/_
33 | https://www.xvideos.com/video34581423/miss_a_suzy_deepfakes_deepfakekpop.com
34 | https://www.xvideos.com/video40728929/_79206569
35 | https://www.xvideos.com/video35568195/_
36 | https://www.xvideos.com/video35904929/teen_girl_secrect_fuck_her_sister_s_boyfriend_when_sleeping
37 | https://www.xvideos.com/video34328693/yu_20_years_old_college_student_sex_at_hotel_pt_2-_www.oppavids.com
38 | https://www.xvideos.com/video20606417/iphone_i_cant_live_without_daughters
39 | https://www.xvideos.com/video32440417/18av.cc_ktv_
40 | https://www.xvideos.com/video20781759/iphone_papa_is_a_pervert
41 | https://www.xvideos.com/video29963269/43829#_tabDownload
42 | https://www.xvideos.com/video21547891/_1_clip#_tabDownload
43 | https://www.xvideos.com/video29363473/_line_hot.9932#_tabDownload
44 | https://www.xvideos.com/video28052077/fb_.._98506005
45 | https://www.xvideos.com/video10090192/xiaoyu_secret_i
46 | https://www.xvideos.com/video8642988/taiwan_student_girl
47 | https://www.xvideos.com/video29664877/taiwanese_fuck_hard_oral_hygiene_-_porncaoliu.com#_tabDownload
48 | https://www.xvideos.com/video12419215/_
49 | https://www.xvideos.com/video23166529/_
50 | https://www.xvideos.com/video29182845/love_sex_--_it_s_a_lot_httpelectricamaz.tumblr.compost130994811704its-a-lot_#_tabDownload
51 | https://www.xvideos.com/video9959049/_
52 | https://www.xvideos.com/video29182845/love_sex_--_it_s_a_lot_httpelectricamaz.tumblr.compost130994811704its-a-lot_
53 | https://www.xvideos.com/video9539615/_taiwan_
54 | https://www.xvideos.com/video29174823/taiwan_couple_sexy#_tabDownload
55 | https://www.xvideos.com/video26237493/what_is_her_name_cual_su_nombre
56 | https://www.xvideos.com/video31647053/amazingly_perfect_asian_teen_tits_pov_www.hott.cam_asians_
57 | https://www.xvideos.com/video19667677/thai_yed_clip_2365#_tabDownload
58 | https://www.xvideos.com/video26088907/_.mp4
59 | https://www.xvideos.com/video21635571/claire_#_tabDownload
60 | https://www.xvideos.com/video29209813/bigo_live_show_tit
61 | https://www.xvideos.com/video40807117/_
62 | https://www.xvideos.com/video40769039/_
63 | https://www.xvideos.com/video37352443/_-_camsex4u
64 | https://www.xvideos.com/video41666493/_
65 | https://www.xvideos.com/video40864831/_
66 | https://www.xvideos.com/video39817043/_
67 | https://www.xvideos.com/video33925273/_
68 | https://www.xvideos.com/video32695385/_fuck_
69 | https://www.xvideos.com/video31640165/019_helen_part_1_-_fuckasianbeauty.com
70 | https://www.xvideos.com/video48999093/extra_tiny_blonde_teen
71 | https://www.xvideos.com/video27797373/whats_her_name_plsss...
72 | https://www.xvideos.com/video34202565/_hah822
73 | https://www.xvideos.com/video34969499/_hah822
74 | https://www.xvideos.com/video36898941/my_masturbation_videos_5
75 | https://www.xvideos.com/video48004549/_
76 | https://www.xvideos.com/video48172853/_
77 | https://www.xvideos.com/video47462467/_
78 | https://www.xvideos.com/video33807423/_hah822
79 | https://www.xvideos.com/video33822639/_hah822
80 | https://www.xvideos.com/video46749449/_3p_sex
81 | https://www.xvideos.com/video28274243/_
82 | https://www.xvideos.com/video32769301/_jj
83 | https://www.xvideos.com/video44640141/anime_redhead_gets_rough_fucking
84 | https://www.xvideos.com/video24370845/korean_uncen_14
85 | https://www.xvideos.com/video46751691/_sex
86 | https://www.xvideos.com/video8459334/taiwan_girlfriend_blowjob
87 | https://www.xvideos.com/video35474961/small_tits_japanese_hardfuck
88 | https://www.xvideos.com/video47670261/_00_qq_1018288673
89 | https://www.xvideos.com/video46462967/_-_
90 | https://www.xvideos.com/video27915937/korean_ona_1
91 | https://www.xvideos.com/video39886539/be_gai_di_hoc_them_nha_ban_kaede_part_3
92 | https://www.xvideos.com/video48350381/swindle_japanese_cute_teen_idol
93 | https://www.xvideos.com/video37492843/big_natural_tits_chinese_teen_camsex_show
94 | https://www.xvideos.com/video39786485/more_at_www.3dbadgirls.club_-_monster_3d_fucking
95 | https://www.xvideos.com/video47587647/_sex
96 | https://www.xvideos.com/video33913159/homemade_creampie
97 | https://www.xvideos.com/video46429813/_sex
98 | https://www.xvideos.com/video39004097/chinese_cam_girl_miss_deer_-_fucks_sleeping_bf
99 | https://www.xvideos.com/video46243641/_h_sex
100 | https://www.xvideos.com/video46294127/_s_sex_ver._
101 | https://www.xvideos.com/video46982545/_.
102 | https://www.xvideos.com/video10017722/_20_~
103 | https://www.xvideos.com/video47878615/_-_-_-_-_
104 | https://www.xvideos.com/video48750301/_._q_839326829_
105 | https://www.xvideos.com/video48660859/_
106 | https://www.xvideos.com/video30659975/_
107 | https://www.xvideos.com/video22992453/_awesome-anime.com_-_yuffie_in_tentacle_from_ff7_final_fantasy_vii_
108 | https://www.xvideos.com/video40575215/_
109 | https://www.xvideos.com/video32529887/legend.hayakawa.serina
110 | https://www.xvideos.com/video33283985/china_teens
111 | https://www.xvideos.com/video48608809/pred-159_dirty_step_father_brainwashes_his_step_daughters
112 | https://www.xvideos.com/video46587199/_loli_427841183_
113 | https://www.xvideos.com/video30116441/project001_12
114 | https://www.xvideos.com/video37523287/_~_
115 | https://www.xvideos.com/video40195511/bealtiful_japanese_girl_crazy_with_bbc
116 | https://www.xvideos.com/video38585323/2_bbcs_on_a_japanese_teen_-_telegram_lolicon_channel_https_t.me_brasillolicon
117 | https://www.xvideos.com/video455920/teen_asian_amai_interracial_anal
118 | https://www.xvideos.com/video32437747/_-_
119 | https://www.xvideos.com/video25968965/perfect_big_tit_asian_fucking
120 | https://www.xvideos.com/video20868507/tutor_to_seduce_-_amateurgirls.online
121 | https://www.xvideos.com/video45770077/_~
122 | https://www.xvideos.com/video27179461/200gana-1278_sample
123 | https://www.xvideos.com/video41689431/stunning_korean_shows_boobs
124 | https://www.xvideos.com/video26060377/200gana-1281_sample
125 | https://www.xvideos.com/video39903995/_
126 | https://www.xvideos.com/video46607523/_-_
127 | https://www.xvideos.com/video47859095/-_-_-_
128 | https://www.xvideos.com/video44559489/3p_
129 | https://www.xvideos.com/video46062755/_2o3o9o415_
130 | https://www.xvideos.com/video49132081/_tatazw_
131 | https://www.xvideos.com/video42198759/asian_girl_aoi_tsukasa_interracial_fucking_2_big_black_cock
132 | https://www.xvideos.com/video36877707/bbc_playboy_annihilates_aoi_tsukasa_s_pussy
133 | https://www.xvideos.com/video37854819/142_minutes_non-stop_shooting_cleaning_a_long_time_to_cum_29_volley_in_uncut_edit_blow_and_bukkake_21_volley_
134 | https://www.xvideos.com/video29647931/asian_lesbians_tribbing_like_crazy
135 | https://www.xvideos.com/video47960005/_2_
136 | https://www.xvideos.com/video47915723/korean_bj_beautiful_tit_show_cam_
137 | https://www.xvideos.com/video40447599/_
138 | https://www.xvideos.com/video47862255/_-_-_
139 | https://www.xvideos.com/video47861675/_-_-1_
140 | https://www.xvideos.com/video44685381/_
141 | https://www.xvideos.com/video49331025/erotic_sailor_uniform
142 | https://www.xvideos.com/video32952213/_-esayporn.blogspot
143 | https://www.xvideos.com/video37490457/hard_demon_hentai_fuck_naughty3d.net
144 | https://www.xvideos.com/video46715363/beautiful_vlxx.icu
145 | https://www.xvideos.com/video39636391/vao_nha_nghi_it_em
146 | https://www.xvideos.com/video49185457/_
147 | https://www.xvideos.com/video46140239/_19_
148 | https://www.xvideos.com/video30994821/_
149 | https://www.xvideos.com/video11261418/_
150 | https://www.xvideos.com/video40314789/_
151 | https://www.xvideos.com/video48898441/_
152 | https://www.xvideos.com/video49304957/_
153 | https://www.xvideos.com/video48446099/cesd-293_www.opjav.icu_woe
154 | https://www.xvideos.com/video47251043/_part.2_
155 | https://www.xvideos.com/video48160511/_
156 | https://www.xvideos.com/video48457199/_
157 | https://www.xvideos.com/video48457147/_
158 | https://www.xvideos.com/video48352493/japanese_jk
159 | https://www.xvideos.com/video45600061/18_jd_loli_
160 | https://www.xvideos.com/video41904605/ntr-007_-_..._
161 | https://www.xvideos.com/video36807709/_
162 | https://www.xvideos.com/video37095375/shy_teen
163 | https://www.xvideos.com/video30731971/baby_girl_japanese_baby_baby_sex_teen_baby_japanese_2_full_goo.gl_rkqxgs
164 | https://www.xvideos.com/video45559526/_daisy_sell_out_3rd_hd
165 | https://www.xvideos.com/video15247349/3d_hentai_-_www.cgirls.tk
166 | https://www.xvideos.com/video19979327/_24video.xxx_akuma_no_oshigoto
167 | https://www.xvideos.com/video39298400/hardcore_hentai_fuck
168 | https://www.xvideos.com/video37604627/hentai_pussy_fuck_naughty3d.net
169 | https://www.xvideos.com/video46222033/_97_
170 | https://www.xvideos.com/video47731713/_-2_
171 | https://www.xvideos.com/video46943799/_
172 | https://www.xvideos.com/video47884699/_bj_2_
173 | https://www.xvideos.com/video47315817/korean_bj_2019041701_bj_couples
174 | https://www.xvideos.com/video49128459/mikami_yua_f_
175 | https://www.xvideos.com/video47894767/_1
176 | https://www.xvideos.com/video44445153/_18_
177 | https://www.xvideos.com/video49220255/hot_japanese_teacher_full_vid_http_biastonu.com_34xi
178 | https://www.xvideos.com/video49225765/fucking_a_cute_sexy_teen_sex_doll_130cm_piper_doll_phoebe
179 | https://www.xvideos.com/video49101655/short_hair_hot_japanese_jerks_classmate_off_in_a_gym
180 | https://www.xvideos.com/video40179715/cute_japan_girl_fucking_her_bf_in_hotel
181 | https://www.xvideos.com/video44779013/_
182 | https://www.xvideos.com/video38041841/_~_~
183 | https://www.xvideos.com/video40712405/_79206569
184 | https://www.xvideos.com/video33018949/takigawa_kanon_1
185 | https://www.xvideos.com/video48456629/_
186 | https://www.xvideos.com/video43842621/petite_japanese_teen_with_clean_shaved_pussy_pleasured
187 | https://www.xvideos.com/video48454503/_
188 | https://www.xvideos.com/video40652121/_2
189 | https://www.xvideos.com/video49118725/_1
190 | https://www.xvideos.com/video49112671/hot_girl_masturbate
191 | https://www.xvideos.com/video49112803/_
192 | https://www.xvideos.com/video24710791/90_
193 | https://www.xvideos.com/video26200813/chinese_so_lo_webcam
194 | https://www.xvideos.com/video48738655/hidori_rose_-_rem_made_to_cum_and_given_facial_part_1_-_watch_free_full_video_on_http_bigtittyvideos.com_
195 | https://www.xvideos.com/video25757509/asiaporn.cf_a_jj_
196 | https://www.xvideos.com/video34395323/_more_on_150hm.com
197 | https://www.xvideos.com/video49284073/_sizeaa
198 | https://www.xvideos.com/video49220923/_
199 | https://www.xvideos.com/video41817801/_
200 | https://www.xvideos.com/video30678391/star_a.j._creampie_compilation
201 | https://www.xvideos.com/video30705193/stars_creampie_compilation_2
202 | https://www.xvideos.com/video41594843/beauty_chinese_live_06_http_linkzup.com_fvajfk6b
203 | https://www.xvideos.com/video40749727/_
204 | https://www.xvideos.com/video10793389/phimse.net_amatuer_sex_videos_collection_of_phimse.net_2
205 | https://www.xvideos.com/video48236412/_
206 | https://www.xvideos.com/video48260580/_2_1
207 | https://www.xvideos.com/video48696097/_
208 | https://www.xvideos.com/video48300218/_
209 | https://www.xvideos.com/video48099711/_
210 | https://www.xvideos.com/video48459853/_uuyo056.com
211 | https://www.xvideos.com/video48394227/_
212 | https://www.xvideos.com/video48514183/teacher_tsukasa_aoi_fucks_student_in_the_classroom
213 | https://www.xvideos.com/video48370245/nhut_nhat_chuyen_tinh_duc_nho_co_ban_than_giup_o
214 | https://www.xvideos.com/video48456837/_
215 | https://www.xvideos.com/video48242736/_6996oo242_
216 | https://www.xvideos.com/video48316191/japanese_massage_02
217 | https://www.xvideos.com/video40421333/_
218 | https://www.xvideos.com/video49302139/s-cute_rei_flirting_sex_with_a_so_charming_girl_-_nanairo.co
219 | https://www.xvideos.com/video32730921/esayporn-91_-esayporn.blogspot.com
220 | https://www.xvideos.com/video33902067/_
221 | https://www.xvideos.com/video33740935/_
222 | https://www.xvideos.com/video39004329/chinese_cameraman_fucked_model_at_hotel
223 | https://www.xvideos.com/video39533053/_
224 | https://www.xvideos.com/video48937505/_
225 | https://www.xvideos.com/video48460013/_uuyo056.com
226 | https://www.xvideos.com/video42513591/chu_oi_tha_cho_chau
227 | https://www.xvideos.com/video48313121/_00_qq_2141434090
228 | https://www.xvideos.com/video48890103/_uuyo056.com
229 | https://www.xvideos.com/video49059553/_uuyo056.xyz
230 | https://www.xvideos.com/video48844919/_00_uuyo056.com
231 | https://www.xvideos.com/video49060629/_uuyo056.xyz
232 | https://www.xvideos.com/video46900073/_
233 | https://www.xvideos.com/video48750301/_._q_614402787_
234 | https://www.xvideos.com/video48742575/_potato_
235 | https://www.xvideos.com/video46147473/_
236 | https://www.xvideos.com/video46720335/_q_614402787_
237 | https://www.xvideos.com/video45882511/_-_
238 | https://www.xvideos.com/video48459297/00_uuyo056.com
239 | https://www.xvideos.com/video47963415/_
240 | https://www.xvideos.com/video48459213/_uuyo056.com
241 | https://www.xvideos.com/video48933247/_uuyo056.com
242 | https://www.xvideos.com/video49212061/_hz761.com
243 | https://www.xvideos.com/video44166843/very_cute_chinese_girl_blowjob_-_https_asiansister.com_
244 | https://www.xvideos.com/video46711453/sexy_model_with_nice_boobs_and_curvy_body_-_japanese_sex_doll
245 | https://www.xvideos.com/video49503375/cute_beauty_pretty_teen_ready_to_fuck_pleasure-sexy-doll.com
246 | https://www.xvideos.com/video42437865/beautiful_babe_good_beautiful
247 | https://www.xvideos.com/video28119873/_
248 | https://www.xvideos.com/video28034445/_
249 | https://www.xvideos.com/video37097315/library_fuck
250 | https://www.xvideos.com/video35080029/2_asian_teen_p1_watch_more_at_maniacporn.com_
251 | https://www.xvideos.com/video34504521/_..._rina_ishihara_adn-046
252 | https://www.xvideos.com/video30072673/99-03-28510_0_25_0_10_
253 | https://www.xvideos.com/video37288543/dam_nu
254 | https://www.xvideos.com/video37373463/_hnd-513_javdove.com
255 | https://www.xvideos.com/video32767047/chubby_japanese_mom_blow_and_fucked
256 | https://www.xvideos.com/video40506041/_3p_
257 | https://www.xvideos.com/video49632091/_u_203696690_2019_
258 | https://www.xvideos.com/video49213855/_u_203696690_
259 | https://www.xvideos.com/video49286267/_-_18_203696690_3dh_app_
260 | https://www.xvideos.com/video49234555/_2267371183
261 | https://www.xvideos.com/video31482161/_2_.
262 | https://www.xvideos.com/video49313665/_j_u_203696690_
263 | https://www.xvideos.com/video48750301/_._q_798692813_
264 | https://www.xvideos.com/video48318725/_
265 | https://www.xvideos.com/video46838183/_
266 | https://www.xvideos.com/video47670261/_00_wx19826800
267 | https://www.xvideos.com/video48459929/_uuyo056.com
268 | https://www.xvideos.com/video49394029/_uuyo056.xyz
269 | https://www.xvideos.com/video48933805/_00_uuyo056.xyz
270 | https://www.xvideos.com/video49393567/_00_uuyo056.xyz
271 | https://www.xvideos.com/video34601675/_
272 | https://www.xvideos.com/video49258923/_uuyo056.xyz
273 | https://www.xvideos.com/video49196529/_d_uuyo056.xyz
274 | https://www.xvideos.com/video38496073/_
275 | https://www.xvideos.com/video38496215/_
276 | https://www.xvideos.com/video38518377/_
277 | https://www.xvideos.com/video32555765/korean_teen_clean_body_-_pvporn.me
278 | https://www.xvideos.com/video28549839/korean_schoolgirl_roleplay
279 | https://www.xvideos.com/video20724027/girls_generation_tributo_xxx
280 | https://www.xvideos.com/video28735349/korea
281 | https://www.xvideos.com/video29120803/cute_korean_baby_hard_fuck_1_nanairo.co
282 | https://www.xvideos.com/video15762983/good_night_2
283 | https://www.xvideos.com/video23004709/_
284 | https://www.xvideos.com/video24156613/_
285 | https://www.xvideos.com/video20817931/iphone_ktv_fun
286 | https://www.xvideos.com/video35203277/mov1332554
287 | https://www.xvideos.com/video24289373/8
288 | https://www.xvideos.com/video24392593/clip_.mp4.mp4_-_openload
289 | https://www.xvideos.com/video27892881/real_homemade_asian_couple_fuck_new_
290 | https://www.xvideos.com/video32759437/hot_chinese_girl
291 | https://www.xvideos.com/video32360013/_b_
292 | https://www.xvideos.com/video31085593/_malaysa_38p
293 | https://www.xvideos.com/video33895543/_qiang_.wmv
294 | https://www.xvideos.com/video37171991/change_wife_4_p
295 | https://www.xvideos.com/video30818221/_
296 | https://www.xvideos.com/video31085855/2017_5000_2_.mp4
297 | https://www.xvideos.com/video31415767/027_nancy_part1_-_fuckasianbeauty.com
298 | https://www.xvideos.com/video35202505/mov0521452.mov
299 | https://www.xvideos.com/video34228421/fucking_pretty_girl_in_sleeping_7_-_javshare99.net
300 | https://www.xvideos.com/video29965863/fucking_pretty_girl_in_sleeping_6_-_javshare99.net
301 | https://www.xvideos.com/video30710041/hairy_sleepy_japanese_pussy-_creampie
302 | https://www.xvideos.com/video30543255/19yo_slow_stripping_and_rubbing_her_pussy
303 | https://www.xvideos.com/video30958323/asian_housewife_banged_in_front_of_sleeping_sucker_husband
304 | https://www.xvideos.com/video29258397/sneaking_in_on_sister_xxx-video.top_
305 | https://www.xvideos.com/video32056793/scandal_sex_student_korea_beautiful_link_full_hd_http_bit.ly_2jldtli
306 | https://www.xvideos.com/video21224065/iphone_lascivious_night_club
307 | https://www.xvideos.com/video10019921/_
308 | https://www.xvideos.com/video10639064/_koreanporn.us_
309 | https://www.xvideos.com/video25250701/_
310 | https://www.xvideos.com/video16775779/purpose_of_reunion_kim_yoo-yeon_
311 | https://www.xvideos.com/video8600571/hot_korean_high_school_students_sucks_and_fucks
312 | https://www.xvideos.com/video28629233/korean_fuck_with_massage_oil
313 | https://www.xvideos.com/video22295535/super_hot_-what_is_her_name_please_link_full_
314 | https://www.xvideos.com/video21181857/who_is_she
315 | https://www.xvideos.com/video10272023/hot_oily_massage_with_two_asian_girls
316 | https://www.xvideos.com/video10272070/hot_oil_massage_with_two_amazing_asian_girls
317 | https://www.xvideos.com/video13943049/slowly_oiled_massage_ends_with_deep_fingering
318 | https://www.xvideos.com/video33979785/asian_girl_doggy_-_sluttyteencams.com
319 | https://www.xvideos.com/video30267587/korean_artist._is_this_real..._
320 | https://www.xvideos.com/video24713273/_the_unspoken_rules_of_korean_entertainment_circle
321 | https://www.xvideos.com/video9774463/_phimse.net_k-pop_sex_scandal_korean_celebrities_prostituting_vol_17
322 | https://www.xvideos.com/video9774463/_phimse.net_k-pop_sex_scandal_korean_celebrities_prostituting_vol_17#
323 | https://www.xvideos.com/video1303011/korean.sex.scandal.2011.vol.16.www.hotfileindex.com
324 | https://www.xvideos.com/video1303030/korean.sex.scandal.2011.kvol.07b.hotfileindex.com
325 | https://www.xvideos.com/video9023115/scandal_korean_collegegirl_homevideo_1
326 | https://www.xvideos.com/video1303015/korean.sex.scandal.2011.vol.19.www.hotfileindex.com
327 | https://www.xvideos.com/video11831601/horny_korean_bitch_loves_to_give_blowjob_to_her_boyfriend
328 | https://www.xvideos.com/video23354672/_2._sex_is_zero_2015_91ava.com
329 | https://www.xvideos.com/video28549839/korean_schoolgirl_roleplay#
330 | https://www.xvideos.com/video32321063/aoa_seolhyun_fancam_-_heart_attack_xxx_pmv_china_matsuoka_1_of_2_fapmusic.com
331 | https://www.xvideos.com/video32295449/laysha_fancam_-_i_m_coming_pmv_xxx_part_1_of_3_-_by_fapmusic
332 | https://www.xvideos.com/video32322413/shin_-_dbd_xxx_pmv_chinese_pop_-_by_fapmusic
333 | https://www.xvideos.com/video1300813/korean.sex.scandal.2011.vol.14.www.hotfileindex.com
334 | https://www.xvideos.com/video31409663/beutiful_girl_show_cam_-_view_more_xasias.com
335 | https://www.xvideos.com/video30376479/co_nu_sinh_body_tuyet_hao_-_truyensexmoi.net
336 | https://www.xvideos.com/video30829879/oppai
337 | https://www.xvideos.com/video23133241/oppai
338 | https://www.xvideos.com/video39563075/fc2_real_amateur_selection_18-year-old_pop-up_student_girl
339 | https://www.xvideos.com/video40033173/_
340 | https://www.xvideos.com/video41126383/_
341 | https://www.xvideos.com/video39913949/91_-_173_-1080p_
342 | https://www.xvideos.com/video39913977/91_-_ol_3p_-1080p_
343 | https://www.xvideos.com/video39443602/91_5_-_soe699_99_-1080p_
344 | https://www.xvideos.com/video39576981/best_girl_chinese_fucked_with_her_boyfriend
345 | https://www.xvideos.com/video34872149/98g_-chinese_homemade_video
346 | https://www.xvideos.com/video34455359/most_beautiful_japanese_woman_ever-_see_more_at_www.oppavids.com
347 | https://www.xvideos.com/video10637158/the_best_beautiful_korean_girl_sextape_with_boyfriend
348 | https://www.xvideos.com/video30251023/does_anyone_know_this_girl_
349 | https://www.xvideos.com/video29487323/phim_sex_han_quoc_nhung_cap_vu_tuyet_ep.mp4
350 | https://www.xvideos.com/video27479399/beauty_saloon_part_1.flv
351 | https://www.xvideos.com/video27479375/beauty_saloon_part_2.flv
352 | https://www.xvideos.com/video25766815/korean_big_tits_actress_fucked_hard
353 | https://www.xvideos.com/video26040399/gorgeous_korean_girl_fucked_in_movie
354 | https://www.xvideos.com/video16998939/strange_hair_salon
355 | https://www.xvideos.com/video20652879/watch_moivies_18_visit_goo.gl_hucbng
356 | https://www.xvideos.com/video27750431/korea1818.com_-_hot_sexy_horny_korean_girl_fucks
357 | https://www.xvideos.com/video31829513/busty_titty_girl_sucks_and_fucks
358 | https://www.xvideos.com/video29739975/first_sex_then_love
359 | https://www.xvideos.com/video29194233/what_is_the_name_of_this_movie_who_knows_to_answer_me
360 | https://www.xvideos.com/video18555527/xvideos.com_603b21c4b3425c8d5624ea1b822ffbc9
361 | https://www.xvideos.com/video18487285/024-1.3
362 | https://www.xvideos.com/video28732775/_bd-1080p.mkv_2.52gb_.cut.1_05_14-1_68_16
363 | https://www.xvideos.com/video29437831/korean_softcore_clip
364 | https://www.xvideos.com/video34642137/korean_girl_with_older_man
365 | https://www.xvideos.com/video29557715/beautiful_cute_corean_cam_girl_bj_neat_does_sexy_close_up.mp4
366 | https://www.xvideos.com/video28429305/sexy_korean_webcam_bj_-_kbj17060708
367 | https://www.xvideos.com/video29524071/subin_new_
368 | https://www.xvideos.com/video22490829/teen_korea_masturbating_in_bathroom
369 | https://www.xvideos.com/video27876097/_
370 | https://www.xvideos.com/video35071653/kbj_neat-16100905
371 | https://www.xvideos.com/video34587533/korea_bj_webcam_040318.2024
372 | https://www.xvideos.com/video34424947/korea_bj_webcam_040318.0235
373 | https://www.xvideos.com/video33877357/korean_webcam_bj_130218.1049
374 | https://www.xvideos.com/video41752587/streamer_masturbate
375 | https://www.xvideos.com/video45289191/_~_ashle_mypornstation.com
376 | https://www.xvideos.com/video42963147/_ashley_2_mypornstation.com
377 | https://www.xvideos.com/video40055019/_mypornstation
378 | https://www.xvideos.com/video41532729/_sm_
379 | https://www.xvideos.com/video37221897/korean_girls_dancing_in_naked_camsex4u.life
380 | https://www.xvideos.com/video32781225/hacked_korean_couple_leaked_6
381 | https://www.xvideos.com/video15127289/anal_teen_sucks_and_gets_fucked
382 | https://www.xvideos.com/video38307017/korean_sex
383 | https://www.xvideos.com/video39569907/_mypornstation
384 | https://www.xvideos.com/video39804077/_mypornstation.com
385 | https://www.xvideos.com/video38437615/korean_bj_8232_mypornstation
386 | https://www.xvideos.com/video31478591/kbj081001_new_
387 | https://www.xvideos.com/video31286317/hentai_asian_cam_girl_masturbating_with_dildo_-_myxcamgirl.com
388 | https://www.xvideos.com/video28687427/cutiechinese_chaturbate_camgirl_-_myxcamgirl.com
389 | https://www.xvideos.com/video24935033/e_gai_show_xm
390 | https://www.xvideos.com/video32616035/cute_chinese_girl
391 | https://www.xvideos.com/video40660193/chinese_sexy_girl
392 | https://www.xvideos.com/video34455447/chinese_cam_girl_miss_deer_-_masturbation_show
393 | https://www.xvideos.com/video33709273/cindy1113_webcam
394 | https://www.xvideos.com/video30968229/asian_teen_-_more_sexgirlcamonline.site
395 | https://www.xvideos.com/video31056919/big_tit_korean_girl_on_cam_-_more_sexgirlcamonline.site
396 | https://www.xvideos.com/video37752575/hot_korean_video_85
397 | https://www.xvideos.com/video34185881/hot_korean_video_49
398 | https://www.xvideos.com/video34014099/kbj_2028
399 | https://www.xvideos.com/video34083543/hot_korean_video_32
400 | https://www.xvideos.com/video33776957/_
401 | https://www.xvideos.com/video25178893/6481486_very_cute_girl_selphy
402 | https://www.xvideos.com/video35298129/cute_girl_2
403 | https://www.xvideos.com/video26929017/s-cute_359
404 | https://www.xvideos.com/video35659195/cave_nhat_scute_ia_chi_tai_nanairo.co_
405 | https://www.xvideos.com/video29074475/japvoyeur_part_3_more_video_zenvoyeur.com
406 | https://www.xvideos.com/video34104415/japanese_baby_cute_hot
407 | https://www.xvideos.com/video29562415/japanese_model_ameri_ichinose_hotel_fuck_and_cum_in_mouth_hd_-_seefreepussy.com
408 | https://www.xvideos.com/video28949063/_854x480_korean_model
409 | https://www.xvideos.com/video22283727/gotporn-tiny-japanese-babe-fingered-and-facialized
410 | https://www.xvideos.com/video32070825/_s-cute_372_phim_it_yurina_ayashiro_cuc_phe_-_nanairo.co
411 | https://www.xvideos.com/video38419185/japanese_1
412 | https://www.xvideos.com/video34198415/japanese_girl
413 | https://www.xvideos.com/video32799739/cute_japanese_teen
414 | https://www.xvideos.com/video31478743/kbj081701_new_
415 | https://www.xvideos.com/video28737153/jav_idol_asami_tsuchiya_es_follada_duro
416 | https://www.xvideos.com/video28825983/hardcore_garden_fucked
417 | https://www.xvideos.com/video23610096/what_is_her_name_
418 | https://www.xvideos.com/video41167657/_
419 | https://www.xvideos.com/video38644795/91_1080p_
420 | https://www.xvideos.com/video40413383/_
421 | https://www.xvideos.com/video40540663/_
422 | https://www.xvideos.com/video40575327/_
423 | https://www.xvideos.com/video39945353/_
424 | https://www.xvideos.com/video40484431/_
425 | https://www.xvideos.com/video40089941/cute_and_tender_japanese_girl_very_excited
426 | https://www.xvideos.com/video40032071/_
427 | https://www.xvideos.com/video40001789/_
428 | https://www.xvideos.com/video40001693/_
429 | https://www.xvideos.com/video39847671/_
430 | https://www.xvideos.com/video39817923/_
431 | https://www.xvideos.com/video39689427/seyou19.com_
432 | https://www.xvideos.com/video40064229/seyou19.com_720p_
433 | https://www.xvideos.com/video35271627/nice_asian_girl
434 | https://www.xvideos.com/video39945357/_
435 | https://www.xvideos.com/video40032063/_
436 | https://www.xvideos.com/video38558023/big_tits_japanese_-_nanairo.co
437 | https://www.xvideos.com/video34564471/0010
438 | https://www.xvideos.com/video34256223/20_years_old_experiences_multiple_orgasm_pt2_-_oppavids.com
439 | https://www.xvideos.com/video24123057/259luxu-457_sample
440 | https://www.xvideos.com/video25373555/200gana-1238_sample
441 | https://www.xvideos.com/video26657621/siro-2973_sample
442 | https://www.xvideos.com/video25486235/bgn-041_sample
443 | https://www.xvideos.com/video25968347/259luxu-567_sample
444 | https://www.xvideos.com/video22769635/259luxu-350_sample
445 | https://www.xvideos.com/video19975187/259luxu-238_sample
446 | https://www.xvideos.com/video18506797/259luxu-248_sample
447 | https://www.xvideos.com/video14921697/259luxu-022_sample
448 | https://www.xvideos.com/video18634121/259luxu-216_sample
449 | https://www.xvideos.com/video16807871/siro-2550_sample
450 | https://www.xvideos.com/video16277741/261ara-016_sample
451 | https://www.xvideos.com/video18631041/259luxu-207_sample
452 | https://www.xvideos.com/video20213195/259luxu-272_sample
453 | https://www.xvideos.com/video22995653/259luxu-381_sample
454 | https://www.xvideos.com/video25828841/259luxu-545_sample
455 | https://www.xvideos.com/video14802807/hot_asian_girl_rammed
456 | https://www.xvideos.com/video24725039/siro-2875_sample
457 | https://www.xvideos.com/video25945499/siro-2947_sample
458 | https://www.xvideos.com/video19494839/200gana-975_sample
459 | https://www.xvideos.com/video15909121/siro-2536_sample
460 | https://www.xvideos.com/video34963659/_u_em_vu_cang_suong_te_nguoi
461 | https://www.xvideos.com/video34255287/20_years_old_experiences_multiple_orgasm_pt1_-_oppavids.com
462 | https://www.xvideos.com/video40032193/_
463 | https://www.xvideos.com/video40238245/_
464 | https://www.xvideos.com/video40238235/_
465 | https://www.xvideos.com/video40575303/_
466 | https://www.xvideos.com/video39944673/_
467 | https://www.xvideos.com/video40238103/_
468 | https://www.xvideos.com/video40237943/_
469 | https://www.xvideos.com/video40002231/_
470 | https://www.xvideos.com/video36264557/_
471 | https://www.xvideos.com/video40574861/_
472 | https://www.xvideos.com/video40089849/_
473 | https://www.xvideos.com/video40443703/3000_
474 | https://www.xvideos.com/video39944663/_
475 | https://www.xvideos.com/video40575183/_
476 | https://www.xvideos.com/video39944809/_
477 | https://www.xvideos.com/video40575313/_
478 | https://www.xvideos.com/video40413013/_
479 | https://www.xvideos.com/video15478655/k2
480 | https://www.xvideos.com/video28781607/korean_girl_surprised_by_the_sized
481 | https://www.xvideos.com/video22238845/hfhh
482 | https://www.xvideos.com/video25615819/japa_girl
483 | https://www.xvideos.com/video27974609/japanese_girl_got_creampie_fuked_hard
484 | https://www.xvideos.com/video18298957/good_vibes_sex
485 | https://www.xvideos.com/video28684647/grandpa_fucking_young_teen_with_beautiful_big_boobs_in_old_young_sex
486 | https://www.xvideos.com/video36980701/_
487 | https://www.xvideos.com/video40238247/_
488 | https://www.xvideos.com/video39944523/_
489 | https://www.xvideos.com/video39972417/_
490 | https://www.xvideos.com/video39911181/_~_~_
491 | https://www.xvideos.com/video39911311/_
492 | https://www.xvideos.com/video39911067/_
493 | https://www.xvideos.com/video35182157/91_30-_hlwu3.com_
494 | https://www.xvideos.com/video34871223/_-chinese_homemade_video
495 | https://www.xvideos.com/video32042535/frf101317_1155542502_005315.694-005712.678_
496 | https://www.xvideos.com/video30729771/baby_girl_maya_japanese_baby_baby_sex_japanese_amateur_16_full_nanairo.co
497 | https://www.xvideos.com/video30729757/baby_girl_urara_japanese_baby_baby_sex_japanese_amateur_11_full_nanairo.co
498 | https://www.xvideos.com/video30729761/baby_girl_urara_japanese_baby_baby_sex_japanese_amateur_20_full_nanairo.co
499 | https://www.xvideos.com/video30729777/baby_girl_moe_japanese_baby_baby_sex_japanese_amateur_14_full_-_nanairo.co
500 | https://www.xvideos.com/video24219997/ch9419_mao_japanese
501 | https://www.xvideos.com/video25315169/trim.913d4d18-0aa9-4727-ad5a-a4b637cf0547.mov
502 | https://www.xvideos.com/video572789/sex_asians
503 | https://www.xvideos.com/video1753702/_www.dearsx.com_-_quiet_asian_girl_with_awesome_perky_tits
504 | https://www.xvideos.com/video1491177/busty_japanese_chick_gets_facial
505 | https://www.xvideos.com/video2368204/japanese_girl_yui_sarina_likes_cum_on_her_face_after_sex
506 | https://www.xvideos.com/video29744219/petite_darling_yui_sarina_is_performing_a_wild_cock_rodeo_expertly
507 | https://www.xvideos.com/video30611477/curvy_hottie_yui_sarina_rides_a_massive_and_stiff_dick_till_she_is_satisfied
508 | https://www.xvideos.com/video4154396/horny_milf_yui_sarina
509 | https://www.xvideos.com/video20390239/busty_haruka_ohsawa_rides_cock_like_a_true_angel
510 | https://www.xvideos.com/video29448117/huge_tits_shizuku_morino_amazing_porn_play_in_pov
511 | https://www.xvideos.com/video28918483/sex_gai_xinh_massage_cuc_hay_xxx_-_vlxx.tv
512 | https://www.xvideos.com/video6113156/student_at_home
513 | https://www.xvideos.com/video24371011/_
514 | https://www.xvideos.com/video23961662/_
515 | https://www.xvideos.com/video28506745/_93_
516 | https://www.xvideos.com/video28334295/_47_
517 | https://www.xvideos.com/video27896483/_._www.dooshe2013.com_
518 | https://www.xvideos.com/video28056901/_
519 | https://www.xvideos.com/video37057027/thai_young_part_3
520 | https://www.xvideos.com/video37169311/china_matsuoka_get_drilled_while_make_up
521 | https://www.xvideos.com/video29405365/106_mia_evans_160801_12min
522 | https://www.xvideos.com/video32448049/thai_amateur_young_couple_sex_2
523 | https://www.xvideos.com/video28551841/_97_
524 | https://www.xvideos.com/video14825601/_
525 | https://www.xvideos.com/video17709749/_
526 | https://www.xvideos.com/video28686731/korean_bj_kim_ha_neul_private_video_-_myxcamgirl.com
527 | https://www.xvideos.com/video36787335/gai_xinh_han_quoc_thu_dam
528 | https://www.xvideos.com/video31478993/korean_bj_kim_ha_neul_svip-15_new_
529 | https://www.xvideos.com/video14061679/01
530 | https://www.xvideos.com/video14062617/pretty_korean_girl_recording_on_camera_3
531 | https://www.xvideos.com/video29001765/japanese_brunette_licking_and_sucking_her_dildo_-_onlivegirls.com
532 | https://www.xvideos.com/video14063047/pretty_korean_girl_recording_on_camera_4
533 | https://www.xvideos.com/video27841653/korean_teen_flashes_her_big_tits-www.pervycam.com
534 | https://www.xvideos.com/video27842169/cute_teen_dildo_fuck_herself-www.pervycam.com
535 | https://www.xvideos.com/video26603039/korean_bj_11
536 | https://www.xvideos.com/video10017215/_2014_
537 | https://www.xvideos.com/video25474035/cute_korean_girl
538 | https://www.xvideos.com/video7113789/beautiful_girl_showcam
539 | https://www.xvideos.com/video25216883/who_is_she_
540 | https://www.xvideos.com/video14061935/the_best_breasts_in_korean_bj_series_5
541 | https://www.xvideos.com/video17440707/she_got_fucked_veryhard_girlcamlive.org
542 | https://www.xvideos.com/video17125983/korean_girl_strips_on_a_webcam_part_1_-_camgirlvip.com
543 | https://www.xvideos.com/video27628423/two_sexy_korean_girls_massage
544 | https://www.xvideos.com/video22899223/korean_girls
545 | https://www.xvideos.com/video26553065/chinese_sex_scandal_with_beautiful_model_5_-_https_goo.gl_pyyp4f
546 | https://www.xvideos.com/video24814247/beautiful_chinese_girl_fucking_excited_goood_tists.mp4
547 | https://www.xvideos.com/video23708828/pretty_chinese_girl
548 | https://www.xvideos.com/video14383705/chinese_girl
549 | https://www.xvideos.com/video29664901/chinese_bank_wordker_porn_life_-_porncaoliu.com
550 | https://www.xvideos.com/video29664877/taiwanese_fuck_hard_oral_hygiene_-_porncaoliu.com
551 | https://www.xvideos.com/video11798177/china_movie_star_mini_yang_rohypnol_by_chinese_guy
552 | https://www.xvideos.com/video13307039/_
553 | https://www.xvideos.com/video20651543/img_7836
554 | https://www.xvideos.com/video22700397/img_5092
555 | https://www.xvideos.com/video15750423/trim.b6ffbc21-1bc4-4771-ab7b-401127d278b4.mov
556 | https://www.xvideos.com/video25661873/trim.6f35f4c8-11c1-4316-b1e9-8e355350e65d.mov
557 | https://www.xvideos.com/video26163539/beautiful_chinese_couple_make_love_-_https_goo.gl_npehin
558 | https://www.xvideos.com/video33797139/170_115_-chinese_homemade_video
559 | https://www.xvideos.com/video33737759/hd-720p_jm18_d_
560 | https://www.xvideos.com/video29629131/91_c_108p_
561 | https://www.xvideos.com/video32776639/_175cm_
562 | https://www.xvideos.com/video40413667/_
563 | https://www.xvideos.com/video39944833/_
564 | https://www.xvideos.com/video41555337/hot_cosplay_girl_http_kuaihuoa.com
565 | https://www.xvideos.com/video35965159/cosplay_japanese_https_ouo.io_8hfb1a_
566 | https://www.xvideos.com/video38784861/forest_nymph_-_icy_oral_tease
567 | https://www.xvideos.com/video32377007/someone_tell_me_this_girl_s_name_please_
568 | https://www.xvideos.com/video25706583/name_please_
569 | https://www.xvideos.com/video34103229/model_name_shinukii_-_cosplay_mikasa
570 | https://www.xvideos.com/video42407467/sexy_cosplayer_rocksylight_
571 | https://www.xvideos.com/video39673701/_
572 | https://www.xvideos.com/video39788869/chinese_cosplay_teen
573 | https://www.xvideos.com/video15181745/fucking_chinese_amateur_cosplay_babe
574 | https://www.xvideos.com/video34255291/chinese_girl
575 | https://www.xvideos.com/video39078718/_
576 | https://www.xvideos.com/video38863933/kashiwazaki_sena_cosplay
577 | https://www.xvideos.com/video40413645/_
578 | https://www.xvideos.com/video39819223/_
579 | https://www.xvideos.com/video40412803/_
580 | https://www.xvideos.com/video39665685/_3p_
581 | https://www.xvideos.com/video46235373/_-_-vip_
582 | https://www.xvideos.com/video40259387/aya_sazanami-_xinh_ep
583 | https://www.xvideos.com/video39081504/sex_big_ass
584 | https://www.xvideos.com/video29245335/_svip-06_new_
585 | https://www.xvideos.com/video29660709/korean_girl_masturbates_on_cam
586 | https://www.xvideos.com/video29963269/43829
587 | https://www.xvideos.com/video16755305/nineteen_no_imagining_kim_cheong-soon
588 | https://www.xvideos.com/video18555575/xvideos.com_55c521766f302edcf2c88021d45161c8
589 | https://www.xvideos.com/video24873101/her_name_or_full_video_please
590 | https://www.xvideos.com/video20591257/korean_wife
591 | https://www.xvideos.com/video24284145/amateur_hentai_wojav.com
592 | https://www.xvideos.com/video24370845/korean_uncen_14#
593 | https://www.xvideos.com/video39908667/91_-_-1080p_
594 | https://www.xvideos.com/video33550433/_d_2
595 | https://www.xvideos.com/video49212061/_uuyo056.xyz
596 | https://www.xvideos.com/video35599009/_
597 | https://www.xvideos.com/video35483849/_
598 | https://www.xvideos.com/video33414571/jk_style_cumshot
599 | https://www.xvideos.com/video35599387/_
600 | https://www.xvideos.com/video27568791/japanese_female_student
601 | https://www.xvideos.com/video24910753/japanese_teen_quiet_reaction_girlsxxxcam_com
602 | https://www.xvideos.com/video30461965/baby_girl_risa_japanese_baby_baby_sex_japanese_amateur_1_full_in_nanairo.co
603 | https://www.xvideos.com/video30461759/baby_girl_hina_japanese_baby_baby_sex_japanese_amateur_7_full_in_nanairo.co
604 | https://www.xvideos.com/video27568895/japanese_teen
605 | https://www.xvideos.com/video28953991/japanese_student_fuck
606 | https://www.xvideos.com/video43911585/petite_japanese_teen_fucked
607 | https://www.xvideos.com/video37725073/sex_hentai_
608 | https://www.xvideos.com/video35754139/_
609 | https://www.xvideos.com/video35826349/_
610 | https://www.xvideos.com/video35826027/_
611 | https://www.xvideos.com/video35880715/_
612 | https://www.xvideos.com/video34546475/_
613 | https://www.xvideos.com/video31831345/sex_teens_asian_beautifull_girl_japanese_jav
614 | https://www.xvideos.com/video31812505/sex_asian_beautifull_girl_japanese_jav
615 | https://www.xvideos.com/video34621893/_
616 | https://www.xvideos.com/video35016495/_
617 | https://www.xvideos.com/video31367189/cute_girl_suck_and_fuck
618 | https://www.xvideos.com/video33448767/cute_teen_girl_show_-_javshare99_net
619 | https://www.xvideos.com/video27218155/hot_girl_nhu_y_-_couple_vietnam_scandal_8_-_javshare99.net
620 | https://www.xvideos.com/video35599129/_
621 | https://www.xvideos.com/video30364401/realitykings_-_teens_love_huge_cocks_-_alice_merchesi_bambino_-_lollipop_cock
622 | https://www.xvideos.com/video35825307/_
623 | https://www.xvideos.com/video36085711/18_express666999
624 | https://www.xvideos.com/video36311673/_
625 | https://www.xvideos.com/video36401903/_kis
626 | https://www.xvideos.com/video35378513/_
627 | https://www.xvideos.com/video36508977/_
628 | https://www.xvideos.com/video40273495/_1
629 | https://www.xvideos.com/video40275941/_3
630 | https://www.xvideos.com/video36086005/18_express666999
631 | https://www.xvideos.com/video39882993/_
632 | https://www.xvideos.com/video33501577/_
633 | https://www.xvideos.com/video33501577/_#
634 | https://www.xvideos.com/video12025333/18yo_girl_selfi_video
635 | https://www.xvideos.com/video33446047/_
636 | https://www.xvideos.com/video30694183/full_breasted_asian_posing_and_playing
637 | https://www.xvideos.com/video39773715/a_shemale_get_fucked_with_a_lucky_man
638 | https://www.xvideos.com/video39770233/a_beautiful_chinese_shemale_need_you_to_serve
639 | https://www.xvideos.com/video38579455/ts_3p_
640 | https://www.xvideos.com/video34170979/crossdressing_and_fuck_with_chinese_guy_cross_by_me_
641 | https://www.xvideos.com/video20948781/ts_
642 | https://www.xvideos.com/video34235055/_
643 | https://www.xvideos.com/video30599291/big_tits_cute_asian_nurse
644 | https://www.xvideos.com/video48607849/_-_
645 | https://www.xvideos.com/video48608121/_-_1_
646 | https://www.xvideos.com/video48676469/_a
647 | https://www.xvideos.com/video48114161/_-jk_715147447
648 | https://www.xvideos.com/video48114401/_715147447
649 | https://www.xvideos.com/video48444677/_-_a
650 | https://www.xvideos.com/video47903519/_
651 | https://www.xvideos.com/video47903519/_#
652 | https://www.xvideos.com/video26977357/_
653 | https://www.xvideos.com/video46178425/_
654 | https://www.xvideos.com/video47543211/_4_soolo888_
655 | https://www.xvideos.com/video31410733/_4_
656 | https://www.xvideos.com/video31549371/_
657 | https://www.xvideos.com/video9398607/office_lady_getting_her_pussy_fucked_in_the_hotel_room
658 | https://www.xvideos.com/video27685389/_96_
659 | https://www.xvideos.com/video31433477/ktv_4p_3p_b_9_trailers_
660 | https://www.xvideos.com/video30755529/_nm_mm_trailers_
661 | https://www.xvideos.com/video30521641/_trailers_
662 | https://www.xvideos.com/video9856801/_-1
663 | https://www.xvideos.com/video25366509/moko_91_
664 | https://www.xvideos.com/video26577557/cum_shot_in_bathroom_with_korean_girlfriend_more_at_hanquoc18.blogspot.com
665 | https://www.xvideos.com/video19242627/korean_porn_bj_so_beutiful_www.faplord.xyz
666 | https://www.xvideos.com/video406189/hot_girl_oiled_body_getting_her_pussy_licked_giving_blowjob_rubbing_cock_with_ass_in_the_bathroom
667 | https://www.xvideos.com/video48130919/_sex_video_part_2_ai_-_deepfakesporn.com
668 | https://www.xvideos.com/video46695605/_
669 | https://www.xvideos.com/video33472453/_j8_
670 | https://www.xvideos.com/video38996791/asian_hot_01
671 | https://www.xvideos.com/video39782045/asian_hot_26
672 | https://www.xvideos.com/video39176972/asian_hot_11
673 | https://www.xvideos.com/video39718565/asian_hot_19
674 | https://www.xvideos.com/video39663931/asian_hot_18
675 | https://www.xvideos.com/video39177986/asian_hot_12
676 | https://www.xvideos.com/video39054860/asian_hot_06
677 | https://www.xvideos.com/video39174242/asian_hot_10
678 | https://www.xvideos.com/video34544843/_cos
679 | https://www.xvideos.com/video30463597/cosplay_xidaidai_moc_cua
680 | https://www.xvideos.com/video43763059/japanese_amateur_107
681 | https://www.xvideos.com/video33178597/petite_japanese_teen_fucked_in_restroom
682 | https://www.xvideos.com/video20333917/asian_teen_gets_creampie
683 | https://www.xvideos.com/video25063383/gf_creamed_horny_korean_couple_-_jizzercams.goldros.com
684 | https://www.xvideos.com/video29703769/chinese_schoolgirl_paid_for_sex_more_asianamateurs.fun
685 | https://www.xvideos.com/video28615849/sexpornmafia.us_-_nicoly_-_korean_teen_plays_with_her_big_tits_on_cam_-_live_-_xvideos.com.ts
686 | https://www.xvideos.com/video46587599/_loli_427841183_
687 | https://www.xvideos.com/video41918357/_52zhibo.vip
688 | https://www.xvideos.com/video49232121/_uuyo056.xyz
689 | https://www.xvideos.com/video49393887/_uuyo056.xyz
690 | https://www.xvideos.com/video48209040/_13_qq_2113590286_
691 | https://www.xvideos.com/video47757145/_qq_2113590286
692 | https://www.xvideos.com/video47757315/_qq_2113590286
693 | https://www.xvideos.com/video47757249/_qq_2113590286
694 | https://www.xvideos.com/video38599387/_qq_2113590286_
695 | https://www.xvideos.com/video45852813/_qq_2113590286_
696 | https://www.xvideos.com/video48817259/_app
697 | https://www.xvideos.com/video45744189/_
698 | https://www.xvideos.com/video48114557/_715147447
699 | https://www.xvideos.com/video48114697/_715147447
700 | https://www.xvideos.com/video45667047/_hyxg188.com
701 | https://www.xvideos.com/video34226553/mp4_ultra_36971361
702 | https://www.xvideos.com/video36752173/japanese_girl_creampie_fuck
703 | https://www.xvideos.com/video37189351/cute_japanese_sisters
704 | https://www.xvideos.com/video38250693/cute_girl_emiri
705 | https://www.xvideos.com/video37095489/fucking_schoolgirls
706 | https://www.xvideos.com/video36114681/emiry_-_nanairo.co
707 | https://www.xvideos.com/video32596885/s-cute_-_sakura_link_full_nanairo.co_
708 | https://www.xvideos.com/video30729913/baby_girl_urara_japanese_baby_baby_sex_japanese_amateur_12_full_-_nanairo.co
709 | https://www.xvideos.com/video39728783/_kiwame.tv_jk_
710 | https://www.xvideos.com/video45600063/18_s_..._
711 | https://www.xvideos.com/video36099195/_
712 | https://www.xvideos.com/video36194303/_
713 | https://www.xvideos.com/video8653193/cosplay
714 | https://www.xvideos.com/video18673279/milf_with_amazing_forms_anna_anjo_goes_nasty_in_younger_cock
715 | https://www.xvideos.com/video20421139/perfect_hardcore_for_sakura_anna_s_tight_pussy
716 | https://www.xvideos.com/video36954697/japanese_cute_teen_-_teeniehot.com
717 | https://www.xvideos.com/video32777623/girlfriend_masturbating_infront_of_cam_-_very_very_horny
718 | https://www.xvideos.com/video32777649/horny_silly_girlfriend_ready_to_fuck
719 | https://www.xvideos.com/video32220561/retard_son_wants_to_fuck_japanese_babysitter
720 | https://www.xvideos.com/video31328247/name_her_please_
721 | https://www.xvideos.com/video27745187/her_name_please
722 | https://www.xvideos.com/video37030091/trapped_in_the_wall_full_video_https_animescosplay2.blogspot.com_
723 | https://www.xvideos.com/video35495407/_ol_j8_
724 | https://www.xvideos.com/video35490955/_
725 | https://www.xvideos.com/video42790283/_m_
726 | https://www.xvideos.com/video36670353/teen_anal_hotcamgiirls.com
727 | https://www.xvideos.com/video42926483/_
728 | https://www.xvideos.com/video30309043/i_guess_she_likes_sex_so_much
729 | https://www.xvideos.com/video30309255/she_did_not_get_angry_clearly_about_creampie_but_she_seemed_be_disappointed
730 | https://www.xvideos.com/video33079935/japanese_jk_3
731 | https://www.xvideos.com/video32984111/japanese_teen_getting_sex_massage
732 | https://www.xvideos.com/video47455835/_
733 | https://www.xvideos.com/video48113895/_715147447
734 | https://www.xvideos.com/video48128565/_715147447
735 | https://www.xvideos.com/video48113845/_-_715147447
736 | https://www.xvideos.com/video48458451/_uuyo056.com
737 | https://www.xvideos.com/video35902031/_
738 | https://www.xvideos.com/video42048335/_x_
739 | https://www.xvideos.com/video17609395/japanese_pornostar_loves_sex_in_glamorous_highdefinition_porn
740 | https://www.xvideos.com/video45679687/_loli_427841183_
741 | https://www.xvideos.com/video49255365/_16_~_
742 | https://www.xvideos.com/video48015763/_
743 | https://www.xvideos.com/video44825643/_
744 | https://www.xvideos.com/video40989281/_
745 | https://www.xvideos.com/video37131231/_-_46p_720p_
746 | https://www.xvideos.com/video36311707/_
747 | https://www.xvideos.com/video44709273/_
748 | https://www.xvideos.com/video45267505/ashley_homemade_sex_videos
749 | https://www.xvideos.com/video40842877/_
750 | https://www.xvideos.com/video48128627/pr_715147447
751 | https://www.xvideos.com/video48194371/_
752 | https://www.xvideos.com/video49820339/_
753 | https://www.xvideos.com/video49305483/_203696690_
754 | https://www.xvideos.com/video44450977/_
755 | https://www.xvideos.com/video48829065/_sm
756 | https://www.xvideos.com/video49022713/_3p
757 | https://www.xvideos.com/video46483789/_
758 | https://www.xvideos.com/video47128135/japanese_girl_flat_chest_white_skin_playing_2_-_http_depkhoe.online_fullhd
759 | https://www.xvideos.com/video46258927/_~_~_-_2
760 | https://www.xvideos.com/video46062755/_1064400453_
761 | https://www.xvideos.com/video30110173/whats_her_name_
762 | https://www.xvideos.com/video20113297/japanese_hottie_having_sex_in_stupendous_highdef_porno
763 | https://www.xvideos.com/video29955813/xvideos.com_1925622c70322659be527393ffe86da6
764 | https://www.xvideos.com/video17609423/japanese_pornostar_loves_sex_in_graceful_hidef_porn
765 | https://www.xvideos.com/video49747649/18_yo_bangkok_slut_pounded_by_big_japan_cock
766 | https://www.xvideos.com/video48525391/_a
767 | https://www.xvideos.com/video48591167/_a
768 | https://www.xvideos.com/video40071921/asian_hot_41
769 | https://www.xvideos.com/video31983279/_1
770 | https://www.xvideos.com/video18544627/cute_schoolgirl_in_uniform
771 | https://www.xvideos.com/video33168679/_
772 | https://www.xvideos.com/video39859099/do_you_want_to_get_fucked_by_a_beautiful_shemale_
773 | https://www.xvideos.com/video27603471/instagram_boheshenai
774 | https://www.xvideos.com/video47451607/japanese_compilation_-_www.adultisporn.com
775 | https://www.xvideos.com/video48959125/_
776 | https://www.xvideos.com/video49042443/_
777 | https://www.xvideos.com/video47586017/_
778 | https://www.xvideos.com/video48959123/_
779 | https://www.xvideos.com/video48289318/_2_1_
780 | https://www.xvideos.com/video48259318/_
781 | https://www.xvideos.com/video48261686/_
782 | https://www.xvideos.com/video48844003/_
783 | https://www.xvideos.com/video47951183/_
784 | https://www.xvideos.com/video48959987/_2_
785 | https://www.xvideos.com/video48930271/_vdo_call
786 | https://www.xvideos.com/video49042419/_
787 | https://www.xvideos.com/video49042551/_
788 | https://www.xvideos.com/video49042503/_
789 | https://www.xvideos.com/video35226889/amazing_body
790 | https://www.xvideos.com/video11591933/a_certain_famous_medical_college_4_year_swimming_club_freestyle_player_flower_s
791 | https://www.xvideos.com/video49690957/_
792 | https://www.xvideos.com/video48197433/_
793 | https://www.xvideos.com/video48845345/_
794 | https://www.xvideos.com/video45465421/_
795 | https://www.xvideos.com/video48292114/_
796 | https://www.xvideos.com/video47752899/_
797 | https://www.xvideos.com/video43672461/_
798 | https://www.xvideos.com/video48584345/_
799 | https://www.xvideos.com/video44728129/_
800 | https://www.xvideos.com/video48236412/_
801 | https://www.xvideos.com/video42328463/_-_hx410410#_tabDownload
802 | https://www.xvideos.com/video36287007/_01
803 | https://www.xvideos.com/video38799825/_
804 | https://www.xvideos.com/video42152859/_
805 | https://www.xvideos.com/video41613909/fucking_her_in_doggy_style_positon
806 | https://www.xvideos.com/video42050733/brother_fuck_sister_and_cum_many_time
807 | https://www.xvideos.com/video42184543/korean_
808 | https://www.xvideos.com/video42003493/_
809 | https://www.xvideos.com/video42173911/japanese_fucking_thrid_creampie
810 | https://www.xvideos.com/video42071587/_
811 | https://www.xvideos.com/video41921649/~_~_1
812 | https://www.xvideos.com/video42180973/_
813 | https://www.xvideos.com/video41958261/en_el_caso_que_tu_le_chupes_su_polla_y_quizas_lo_dejes_que_te_folle...-----_copie_y_cole_bit.ly_2klhtus
814 | https://www.xvideos.com/video41874713/_
815 | https://www.xvideos.com/video42017723/brother_s_girl_korean_part_1_-_full_moive_at_http_bit.ly_2q9iqmo
816 | https://www.xvideos.com/video42066239/_
817 | https://www.xvideos.com/video41946673/_
818 | https://www.xvideos.com/video41946735/_
819 | https://www.xvideos.com/video41747909/_-_
820 | https://www.xvideos.com/video38742881/_-_
821 | https://www.xvideos.com/video42029149/em_nguoi_yeu_han_quoc_va_thay_giao
822 | https://www.xvideos.com/video41779173/ut_aicee_
823 | https://www.xvideos.com/video41885725/_
824 | https://www.xvideos.com/video36495739/_-_uu575.com
825 | https://www.xvideos.com/video41719507/_
826 | https://www.xvideos.com/video40666617/_~_http_hungya.cloudaccess.host_
827 | https://www.xvideos.com/video40654599/19_http_hungya.cloudaccess.host_
828 | https://www.xvideos.com/video40766225/_http_hungya.cloudaccess.host_
829 | https://www.xvideos.com/video40408321/horny_chinese_girlfriend_fuckhard
830 | https://www.xvideos.com/video40410019/18yr_japanese_teen_blowjob_in_dressing_room
831 | https://www.xvideos.com/video40873119/_qq78725070_
832 | https://www.xvideos.com/video40729911/_79206569
833 | https://www.xvideos.com/video41038079/_
834 | https://www.xvideos.com/video41167279/_xxxthvip.com
835 | https://www.xvideos.com/video40457139/_xxxthvip.com
836 | https://www.xvideos.com/video43012089/fc2-650098-hd
837 | https://www.xvideos.com/video42935697/_-_._._hx410410
838 |
--------------------------------------------------------------------------------