爬虫3: 抓取电影天堂2024必看热片

目标: 电影天堂->2024必看热片专栏->所有电影下载地址

# 1.抓取专栏源代码, 定位2024必看热片

# 2.在2024必看热片中截取电影详情页链接地址

# 3.请求详情页源代码, 截取下载地址

# 4.保存为csv文件, 方便对数据进行分析



# 1.目标: 电影天堂->2024必看热片专栏->内部所有电影的下载地址

# 2.工作流程:
#     1.抓取专栏源代码, 定位2024必看热片
#     2.在2024必看热片中截取电影详情页链接地址
#     3.请求详情页源代码, 截取下载地址
#     4.保存为csv文件, 方便对数据进行分析


# 详细步骤
#     1.1抓取专栏源代码
import requests
page_url='http://www.dytt89.com/'
resp_int=requests.get(page_url, verify=False)
resp_int.encoding='gb2312'
resp_text=resp_int.text
# 1.2 构建正则表达式, 为截取'2024必看热片'做准备,
import re
hand1= re.compile(r'2024必看热片.*?<ul>(?P<ul>.*?)'
                  r'</ul>', re.S)
# 2.1.在'2024必看热片'部分截取电影链接
hand2=re.compile(r"<li><a href='(?P<href>.*?)'",re.S)
# 3.1在电影链接页面的源代码中截取电影名+电影下载地址
hand3=re.compile(r'<div class="title_all"><h1>(?P<name>.*?)'
               r'</h1>.*?<td style="WORD-WRAP: break-word" bgcolor="#fdfddf">'
                 r'<a href="(?P<download_url>.*?)">',re.S)
#  4.1, 创建打开csv文件, 方便对数据进行分析
import csv
f=open("down_load_set.csv","w",encoding='utf-8')
csvwirter=csv.writer(f)

#   1.3.  定位截取2024必看热片
select_parts=hand1.finditer(resp_text)
for select_part in select_parts :
    select_part_content=select_part.group("ul")
    #     2.2.在2024必看热片中截取电影详情页链接地址
    hrefs=hand2.finditer(select_part_content)
    for href in hrefs:
        #    3.2.请求详情页源代码
        # 链接前面加上域名. 形成完整链接地址
        href_content= page_url+href.group('href').strip("/")
        # 获取电影网页源代码并转化为文本
        child_source_code=requests.get(href_content, verify=False)
        child_source_code.encoding='gb2312'
        child_text = child_source_code.text
        # 截取电影名+下载地址, finditer/search应该都可以, 先试试
        #   3.3 截取下载地址
        results=hand3.finditer(child_text)
        for result in results:
            result_dict = result.groupdict()
            csvwirter.writerow(result_dict.values())

#     4.1, 关闭保存csv文件
f.close()
print("game over")   # 可有可无, 主要是方便查看输出的结果


# 除了re模块,  进行字符串的正则表达式匹配的模块还有xpath()...等
# re模块和csv模块是python标准库中的模块, 不需要安装, 直接导入即可使用, 安装会报错



 

除了re模块,  进行字符串的正则表达式匹配的模块还有xpath()...等

re模块和csv模块是python标准库中的模块, 不需要安装,

直接导入即可使用, 安装会报错, 不过不会影响正常运行的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值