电影天堂磁力链接获取

1,098 阅读2分钟

电影天堂是一个知名的电影下载网站,今天我们的任务是爬取该网站迅雷电影资源下的电影名和磁力链接。

image.png

首先导入requests、re和pandas等库,用于发送网络请求、进行正则表达式匹配和数据处理等操作。然后定义一个包含用户代理信息的字典ua,用于发送网络请求。接着使用requests库发送一个get请求,获取“阳光电影”网站的html文本,并设置编码为'gb2312',防止乱码。

import requests
import re
import pandas as pd
ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
ygdy = 'https://m.ygdy8.com/index.html'

get_web = requests.get(url = ygdy,headers =ua,verify=False)
get_web.encoding = 'gb2312'

利用正则表达式匹配迅雷电影内的信息。

re1 = re.compile(r'迅雷电影资源.*?<ul>(?P<text>.*?)</ul>',re.S)
re2 =re.compile(r"迅雷电影资源.*?<a href='(?P<link>.*?)'")
get_re1 = re1.finditer(get_web.text)

image.png 将迅雷电影的信息进行遍历,用正则表达式找出需要的内容,要注意的是这里获取的链接并不是电影的磁力链接,而是进入电影详情页的链接,进入详情页后我们才能获取需要的磁力链接。

for i in all_urls:
    get_web1 = requests.get(url=i, headers=ua, verify=False)
    get_web1.encoding = 'gb2312'
    #爬片名和电影链接
    re3 = re.compile(r'◎译  名(?P<tit>.*?)<br />.*?'
                     r'<a target="_blank" href="(?P<mlink>.*?)">',
                     re.S)
    get_re2 = re3.finditer(get_web1.text)
    for x in get_re2:

        dic = x.groupdict()

        down_link = 'D:/PYTHONSTUDY/pythonProject7/爬虫/re模块/阳光电影.csv'
        download = pd.DataFrame(dic,index=[0])
        download.to_csv(down_link,mode='a',header=0,index=False,encoding='ANSI')

最后我们还要把信息储存到excel方便使用。 完整代码:

# -*- codeing = utf-8 -*-
# -*- codeing = utf-8 -*-
import requests
import re
import pandas as pd
ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
ygdy = 'https://m.ygdy8.com/index.html'

get_web = requests.get(url = ygdy,headers =ua,verify=False)
get_web.encoding = 'gb2312'

re1 = re.compile(r'迅雷电影资源.*?<ul>(?P<text>.*?)</ul>',re.S)
re2 =re.compile(r"迅雷电影资源.*?<a href='(?P<link>.*?)'")
get_re1 = re1.finditer(get_web.text)


all_urls = []
for i in get_re1:
    ul = i.group("text")

    get_re2 =re2.finditer(ul)
    for x in get_re2:
        ul1 = x.group("link")
        all_url = 'https://m.ygdy8.com' + ul1
        all_urls.append(all_url)

for i in all_urls:
    get_web1 = requests.get(url=i, headers=ua, verify=False)
    get_web1.encoding = 'gb2312'
    #爬片名和电影链接
    re3 = re.compile(r'◎译  名(?P<tit>.*?)<br />.*?'
                     r'<a target="_blank" href="(?P<mlink>.*?)">',
                     re.S)
    get_re2 = re3.finditer(get_web1.text)
    for x in get_re2:

        dic = x.groupdict()

        down_link = 'D:/PYTHONSTUDY/pythonProject7/爬虫/re模块/阳光电影.csv'
        download = pd.DataFrame(dic,index=[0])
        download.to_csv(down_link,mode='a',header=0,index=False,encoding='ANSI')