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-->解析,提取需要的信息
地址







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

  • 16
    点赞
  • 18
    收藏
  • 打赏
    打赏
  • 34
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:岁月 设计师:pinMode 返回首页
评论 34

打赏作者

不良使

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值