我想得到这里的电影的下载地址。
python抓包回来,默认进行utf8编码了,但是 如果网页的编码不是utf8的话,就会出现这样的乱码
网站的编码通常会进行声明,
# -*- coding: utf-8 -*-
# @Time: 2021/5/5 14:05
# @Author: adam
# @File: demo2.py
import csv
import re
import requests
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}
domain='https://www.dytt8.net/index.htm'
res = requests.get(url=domain,headers=header,verify = False)
res.encoding='gb2312' # 指定字符集
page_content = res.text
# print(page_content)
# 拿到了ul中的url
obj1 = re.compile(r"手机浏览,推荐下载本站app,绿色小巧,简单实用!详情请点击!.*?(?P.*?)"
,re.S)
obj2 = re.compile(r"最新电影下载.*?href='(?P.*?)'" ,re.S)
child_href_list = []
result1 = obj1.finditer(page_content)
for it in result1: # 这个只有一个,因为能够符合上述匹配的只有一个东西。
ul = it.group('ul')
# 提取子页面连接: https://www.dytt8.net/html/gndy/dyzz/20210430/61371.html需要加上前面的域名
result2 = obj2.finditer(ul)
for it in result2:
# 拼接子页面和url地址
child_herf = 'https://www.dytt8.net' + it.group('herf')
child_href_list.append(child_herf) # 把子页面的连接保存在一个 列表中。
# 提取 子页面内容。
for herf in child_href_list:
child_resp = requests.get(url=herf,verify=False)
child_resp.encoding='gb2312'
child_page_content = child_resp.text
print(child_page_content)
break # 测试用的
nice,就只有这个一个地方,直接就找到url了。
最终代码:
# -*- coding: utf-8 -*-
# @Time: 2021/5/5 14:05
# @Author: adam
# @File: demo2.py
import csv
import re
import requests
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}
domain='https://www.dytt8.net/index.htm'
res = requests.get(url=domain,headers=header,verify = False)
res.encoding='gb2312' # 指定字符集
page_content = res.text
# print(page_content)
# 拿到了ul中的url
obj1 = re.compile(r"手机浏览,推荐下载本站app,绿色小巧,简单实用!详情请点击!.*?(?P.*?)"
,re.S)
obj2 = re.compile(r"最新电影下载.*?href='(?P.*?)'" ,re.S)
obj3 = re.compile(r'◎片 名(?P.*?)
.*?
)
child_href_list = []
result1 = obj1.finditer(page_content)
for it in result1: # 这个只有一个,因为能够符合上述匹配的只有一个东西。
ul = it.group('ul')
# 提取子页面连接: https://www.dytt8.net/html/gndy/dyzz/20210430/61371.html需要加上前面的域名
result2 = obj2.finditer(ul)
for itt in result2:
# 拼接子页面和url地址
child_herf = 'https://www.dytt8.net' + itt.group('herf')
# print(child_herf)
child_href_list.append(child_herf) # 把子页面的连接保存在一个 列表中。
# 提取 子页面内容。
for herf in child_href_list:
child_resp = requests.get(url=herf,verify=False)
child_resp.encoding='gb2312'
child_page_content = child_resp.text
# print(child_page_content)
# break # 测试用的
result3 = obj3.finditer(child_page_content)
for ittt in result3:
print(ittt.group('movie_name'),end=' ')
print(ittt.group('movie_url'))