php抓取网页连接函数( 电影天堂-2019年新片精品-更多#目标电影名称、下载链接 )
优采云 发布时间: 2022-02-01 03:14php抓取网页连接函数(
电影天堂-2019年新片精品-更多#目标电影名称、下载链接
)
抓取电影天堂 - 次要页面抓取
时间:2020-01-07
本文章为您介绍电影天堂-二级页面爬取,主要包括电影天堂-二级页面爬取使用实例、应用技巧、基础知识点总结及注意事项。参考价值,需要的朋友可以参考。
# 地址
电影天堂 - 2019 新精选 - 更多
# 目标
电影名称,下载链接
# 分析
*********需要爬取一级页面************
1、片名
2、电影链接
*********二级页面需要爬取*********
1、下载链接
实施步骤
1、判断响应内容中是否存在想要的爬取数据
2、查找 URL 模式
第1页 :https://www.dytt8.net/html/gndy/dyzz/list_23_1.html
第2页 :https://www.dytt8.net/html/gndy/dyzz/list_23_2.html
第n页 :https://www.dytt8.net/html/gndy/dyzz/list_23_n.html
3、写正则表达式
1、一级页面正则表达式
.*?>(.*?)</a>
4、代码实现
from urllib import request
import re
from useragents import ua_list
import time
import random
class FilmSkySpider(object):
def __init__(self):
# 一级页面url地址
self.url = 'https://www.dytt8.net/html/gndy' \
'/dyzz/list_23_{}.html'
# 获取html功能函数
def get_html(self,url):
headers = {
'User-Agent':random.choice(ua_list)
}
req = request.Request(url=url,headers=headers)
res = request.urlopen(req)
# 通过网站查看网页源码,查看网站charset='gb2312'
# 如果遇到解码错误,识别不了一些字符,则 ignore 忽略掉
html = res.read().decode('gb2312','ignore')
return html
# 正则解析功能函数
def re_func(self,re_bds,html):
pattern = re.compile(re_bds,re.S)
r_list = pattern.findall(html)
return r_list
# 获取数据函数 - html是一级页面响应内容
def parse_page(self,html):
re_bds = r'.*?>(.*?)</a>'
# two_page_list: ['ftp://xxxx.mkv']
two_page_list = self.re_func(re_bds,html)
download = two_page_list[0].strip()
return download
def main(self):
for page in range(1,11):
url = self.url.format(page)
html = self.get_html(url)
self.parse_page(html)
# uniform: 浮点数
time.sleep(random.uniform(1,3))
if __name__ == '__main__':
spider = FilmSkySpider()
spider.main()