python 爬虫(正则)

在这里插入图片描述
🍖🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖
🍖🍖
🍖🍖🍖
🍖🍖🍖🍖 作者 : 不良使
🍖🍖🍖🍖🍖 潜力创作新星 华为云享专家
🍖🍖🍖🍖🍖🍖 博客记录学习的思路,项目和错误,寻找志同道合的朋友
🍖🍖🍖🍖🍖🍖🍖 如果觉得有帮助记得一键三连 ┗|`O′|┛ 嗷~~
🍖🍖🍖🍖🍖🍖🍖🍖

🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖


1、 的定位2022必看片
2、 从2022必看片中拿到子页面链接地址
3 、请求子页面地址,拿到我们想要下载的地址

🍓🍓获取页面请求

地址在最后面

import requests
import re

# todo 列表拿来存储子页面,为后面提取每个子页面信息做准备


child_urls=[地址]
url = ""

resp = requests.get(url)  # todo   verify=False  去掉安全认证
resp.encoding = 'gbk'
print(resp.text)

在这里插入图片描述

因为我们可以在开发者模式种会发现是get请求,requests.get(url)。因为这个网站的反爬不是很严重,所以不用伪装成用户了。很适合新手练手。
注意:无论是爬取什么网站,获得什么信息都是先获得html,然后解析html提取需要的数据。

💋💋resp.encoding = 'gbk’默认是utf-8,不设置会乱码。

🍓🍓定位2022必看片

在这里插入图片描述
代码展示

import requests
import re

# todo 列表拿来存储子页面,为后面提取每个子页面信息做准备
child_urls=[]
url = "地址"

resp = requests.get(url)  # todo   verify=False  去掉安全认证
resp.encoding = 'gbk'
# print(resp.text)

obj = re.compile(r'2022必看热片.*?<ul>(?P<content>.*?)</ul>', re.S)
obj2 = re.compile(r"<a href='(?P<url>.*?)'",re.S)
obj3=re.compile(r' title="(?P<title>.*?)"',re.S)

# todo 先取出所有的li标签
res = obj.finditer(resp.text)
for i in res:
    ul = i.group("content")
    print(ul)

在这里插入图片描述


🍓🍓解析&&提取

import requests
import re

# todo 列表拿来存储子页面,为后面提取每个子页面信息做准备
child_urls=[]
url = "地址"

resp = requests.get(url)  # todo   verify=False  去掉安全认证
resp.encoding = 'gbk'
# print(resp.text)

obj = re.compile(r'2022必看热片.*?<ul>(?P<content>.*?)</ul>', re.S)
obj2 = re.compile(r"<a href='(?P<url>.*?)'",re.S)
obj3=re.compile(r' title="(?P<title>.*?)"',re.S)

# todo 先取出所有的li标签
res = obj.finditer(resp.text)
for i in res:
    ul = i.group("content")
    # print(ul)
    res2 = obj2.finditer(ul)
    # todo 取出后匹配里面需要的url
    # todo 注意,这里的url只是一部分,需要拼接
    for j in res2:
        child_url=url+j.group("url").strip("/")
        child_urls.append(child_url)
        # print(child_url)
        # print(j.group("url"))
    # todo 获取电影标题
    res3=obj3.finditer(ul)
    for k in res3:
        print(k.group("title"))
        pass
print(child_urls)

在这里插入图片描述


🍓🍓挖掘

由于上面已经huoqu2022所有值得看电影的url,下面对每个url发起请求获得每个子页面的html,进行解析提取。

# coding=utf-8
# TODO                鸟欲高飞,必先展翅
# TODO                 向前的人 :Jhon


# todo  定位2022必看片
# todo  从2022必看片中拿到子页面链接地址
# todo  请求子页面地址,拿到我们想要下载的地址

import requests
import re

# todo 列表拿来存储子页面,为后面提取每个子页面信息做准备
child_urls=[]
url = "地址"

resp = requests.get(url)  # todo   verify=False  去掉安全认证
resp.encoding = 'gbk'
# print(resp.text)

obj = re.compile(r'2022必看热片.*?<ul>(?P<content>.*?)</ul>', re.S)
obj2 = re.compile(r"<a href='(?P<url>.*?)'",re.S)
obj3=re.compile(r' title="(?P<title>.*?)"',re.S)

# todo 先取出所有的li标签
res = obj.finditer(resp.text)
for i in res:
    ul = i.group("content")
    # print(ul)
    res2 = obj2.finditer(ul)
    # todo 取出后匹配里面需要的url
    # todo 注意,这里的url只是一部分,需要拼接
    for j in res2:
        child_url=url+j.group("url").strip("/")
        child_urls.append(child_url)
        # print(child_url)
        # print(j.group("url"))
    # todo 获取电影标题
    res3=obj3.finditer(ul)
    for k in res3:
        # print(k.group("title"))
        pass
# print(child_urls)
# todo 前面取到了子页面的url,下面开始提取子页面的电影信息
# todo 子页面正则提取
child_1=re.compile(r'◎片  名 (?P<movie>.*?)<br />', re.S)
child_2=re.compile(r'<td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(?P<download>.*?)"', re.S)
for url in child_urls:
    child_resp=requests.get(url)
    child_resp.encoding='gbk'
    # print(child_resp.text)
    res4=child_1.findall(child_resp.text)
    # print(res4)

    res5=child_2.findall(child_resp.text)
    print(res5)

在这里插入图片描述
流程:发起get请求-->定位-->解析-->获得定位的所有url-->对每个获得的url发起请求-->获得每部电影的html-->解析,提取需要的信息
地址







**觉得有用的可以给个三连,关注一波!!!带你了解更多爬虫小知识

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不良使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值