402-电影天堂

  0.说明

本次是加深对正则表达式与逻辑判断的一次训练

如有错误请指出

学习网站为:https://www.bilibili.com/video/BV1i54y1h75W

使用网址为:https://www.dytt89.com/

  1.安全验证

需要在get请求内加上(domain,verify=False),如果不加,电影天堂会认为你的访问是不安全的,从而拒绝你的访问

  2.字符集

resp.encoding = 'gb2312' # 自己选定编码方式

Python默认字符集是utf-8,但是电影天堂的字符集是gb2312,如果字符集不匹配就会出现乱码,所以需要修改python内的requests的所使用的字符集

  3.匹配首页的大项

  截图1如下

 

 

 

图内为首页的大项的html内容,使用正则获取蓝框内容,这个正则不难

re2 = re.compile(r"2021必看热片.*?<ul>(?P<ull>.*?)</ul>",re.S)

iter2 = re2.finditer(html_text)

整个大项的内容就都存在于iter2这个迭代器内

  4.获取子页面href

使用一个列表用来存放最后要访问的href

child_href_list = []

child_href_list.append(child_href)

刚刚说所有的信息在iter2这个迭代器内,将数据取得

bkrp = i2.group("ull")

再启用一个新的正则,得到里面的href链接,然后将其拼接,其中又可能需要加上上坡斜杠,可以使用调试进行打印查看

re3 = re.compile(r"<li><a href='(?P<href>.*?)'",re.S)

iter3 = re3.finditer(bkrp)

for i3 in iter3:

child_href = domain + i3.group("href").strip("/")

print(child_href)

child_href_list.append(child_href)

  5.获取影名与链接

截图2如下

 

 

 

子页面的网址已经存放在child_href_list内,然后使用resp进行访问,注意编码方式与空格

re4 = re.compile(r'◎片  名(?P<movie_name>.*?)<br />'

r'.*?<div id="downlist".*?<a href=.*?>(?P<download_link>.*?)</a>'

,re.S)

  6.结果截图(不完全)

截图3如下

 

 

 

  7.全部代码

完整代码
Posted on 2021-12-12 12:39  污钞vtor  阅读(554)  评论(0编辑  收藏  举报