作者 : 不良使
潜力创作新星 华为云享专家
博客记录学习的思路,项目和错误,寻找志同道合的朋友
如果觉得有帮助记得一键三连 ┗|`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,不设置会乱码。
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必看热片.*?(?P.*?)
', re.S)
obj2 = re.compile(r",re.S)
obj3=re.compile(r' title="(?P.*?)"' ,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必看热片.*?(?P.*?)
', re.S)
obj2 = re.compile(r",re.S)
obj3=re.compile(r' title="(?P.*?)"' ,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必看热片.*?(?P.*?)
', re.S)
obj2 = re.compile(r",re.S)
obj3=re.compile(r' title="(?P.*?)"' ,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.*?)
' , re.S)
child_2=re.compile(r', 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-->解析,提取需要的信息
地址
**觉得有用的可以给个三连,关注一波!!!带你了解更多爬虫小知识