import re
import requests
import xlwt //将得到的下载电影的地址送到excel表中
workbook = xlwt.Workbook(encoding="utf-8")
worksheet = workbook.add_sheet('sheet1')
head = {
"user-agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 '
'Safari/537.36 '
}
url = "https://www.dytt89.com/"
res = requests.get(url, verify=False, headers=head) //让他的安全认证失效(不太懂)。
res.encoding = 'gbk' //防止得到的是乱码
# print(res.text)
obj1 = re.compile(r"2022必看热片.*?<ul>(?P<ul>.*?)</ul>", re.S)//查询的是2022年必看热片。
obj2 = re.compile(r"<a href='(?P<zi>.*?)'", re.S) //找到那里面每个电影的地址
obj3 = re.compile(r"<td style=\"WORD-WRAP: break-word\" bgcolor=\"#fdfddf\"><a href=.(?P<download>.*?)&tr=http", re.S)
res1 = obj1.finditer(res.text)
yemians = []
for it in res1:
# print(it.group('ul'))
ul = it.group('ul')
res2 = obj2.finditer(ul)
for i in res2:
href = i.group('zi')
yemian = url + href.strip("/")//将得到的地址与原始的url和在一起就是电影页面的地址
yemians.append(yemian) //定义一个列表储存所有电影页面的地址
# 获取子页面
# print(yemians[0])
movie = []
for p in yemians:
res3 = requests.get(p, verify=False)
# print(p)
res3.encoding = 'gbk' //在每一个子页面中找到他们的下载地址,存放到列表里。
# print(res3.text)
ti = obj3.findall(res3.text)
movie.extend(ti)
m = 0
for d in movie:
# print(d)
n = 0
worksheet.write(m, 0, d)
m += 1
workbook.save('movie.xls')
1:引入必要的模块儿。
import re
import requests
import xlwt
2: 防止被认出
head = {
"user-agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 '
'Safari/537.36 '
}
3:找的是2022必看热片
审核未通过,不再展示
先在这一页的源代码中找到通过
obj1 = re.compile(r"2022必看热片.*?<ul>(?P<ul>.*?)</ul>", re.S)
res1 = obj1.finditer(res.text)
for it in res1:
# print(it.group('ul'))
ul = it.group('ul')
找到那一个子页面的代码,
4:找到子页面电影,中所有电影的地址
obj2 = re.compile(r"<a href='(?P<zi>.*?)'", re.S)
yemians = []
for it in res1:
# print(it.group('ul'))
ul = it.group('ul')
res2 = obj2.finditer(ul)
for i in res2:
href = i.group('zi')
yemian = url + href.strip("/")
yemians.append(yemian)
用列表保存那个页面中所有电影的地址,就能得到:
这是其中一个电影的页面,
审核未通过,不再展示。,,,,,
5:再打开这个页面的源代码通过
obj3 = re.compile(r"<td style=\"WORD-WRAP: break-word\" bgcolor=\"#fdfddf\"><a href=.(?P<download>.*?)&tr=http", re.S)
movie = []
for p in yemians:
res3 = requests.get(p, verify=False, headers=head)
# print(p)
res3.encoding = 'gbk'
# print(res3.text)
ti = obj3.findall(res3.text)
movie.extend(ti)
来获取电影的下载地址,把信息存入excel表格中。就能得到:
下载电影的地址,有的电影有多个下载。审核不能通过,不再展示
6:有的电影有多个下载地址,复制一个链接,在浏览器中打开:
得到
下载的页面
之前审核未通过,这里就不在展示