php抓取网页连接函数( 电影天堂-2019年新片精品-更多#目标电影名称、下载链接 )

优采云 发布时间: 2022-02-01 03:14

  php抓取网页连接函数(

电影天堂-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()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线