使用之前所学内容,来爬取电影天堂中的相关信息吧,可以爬取下载地址,简介等,一次性看电影看个够。
1、爬取流程梳理
需求,使用
python
代码爬取电影天堂中,最新影片中的前5页下的,每一个电影的下载地址和相关介绍,包括但不限于:主演、国家、视频简介等内容。
(1)整体定位
爬取的页面内容为多个该页面下的电影,示例如下:
(2)范围定位
那么我们在定位到每个电影中,示例如下:
(3)大致定位
获取页面中和对应电影有关的内容:
(4)准确定位
就是该页面中电影中的每个信息都需要。
2、代码书写
我们不是需要爬取5页的数据嘛,我们先从第一页入手,然后爬取第一页的第一个视频的相关信息,如果能爬出来,那么后面无非就是添加循环,然后多次请求罢了。
(1)整体定位
爬取第一页,代码如下:
# 导入模块
import requests
from lxml import etree
# 请求头
Headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://www.ygdy8.net/html/gndy/dyzz/index.html'
}
# 请求第一页
One_Url = 'https://www.ygdy8.net/html/gndy/dyzz/list_23_1.html'
Requ = requests.get(url=One_Url, headers=Headers)
Text = Requ.content.decode('gbk')
print(Text)
这里我们获取的是第一页的相关信息,输出结果如下:
(2)范围定位
就是我们需要爬取第一页的所有电影的Url
,然后访问那个Url
,从而获取里面的数据,代码如下:
# 导入模块
import requests
from lxml import etree
# 请求头
Headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://www.ygdy8.net/html/gndy/dyzz/index.html'
}
Base_Url = 'https://www.ygdy8.net'
# 请求第一页
One_Url = 'https://www.ygdy8.net/html/gndy/dyzz/list_23_1.html'
Requ = requests.get(url=One_Url, headers=Headers)
Text = Requ.content.decode('gbk')
# print(Text)
# 获取中间部分视频的url
Html = etree.HTML(Text)
One_Page = Html.xpath("//div[@class='co_content8']//a")
print(One_Page)
# 获取每个url,并轮训请求
for Details_Url in One_Page:
Href = Details_Url.xpath("@href")[0]
print(Href)
# 找到以“/”开头的
if Href.startswith('/'):
Detail_Url = Base_Url + Href
One_Detail = requests.get(url=Detail_Url, headers=Headers)
print(One_Detail.content.decode('gbk'))
# 只允许请求一次
break
输出内容如下:
(3)大致定位
就是定位到我们详情页中的中间内容,代码如下:
# 导入模块
import requests
from lxml import etree
# 请求头
Headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://www.ygdy8.net/html/gndy/dyzz/index.html'
}
Base_Url = 'https://www.ygdy8.net'
# 请求第一页
One_Url = 'https://www.ygdy8.net/html/gndy/dyzz/list_23_1.html'
Requ = requests.get(url=One_Url, headers=Headers)
Text = Requ.content.decode('gbk')
# print(Text)
# 获取中间部分视频的url
Html = etree.HTML(Text)
One_Page = Html.xpath("//div[@class='co_content8']//a")
# print(One_Page)
# 获取每个url,并轮训请求
for Details_Url in One_Page:
Href = Details_Url.xpath("@href")[0]
# print(Href)
# 找到以“/”开头的
if Href.startswith('/'):
Detail_Url = Base_Url + Href
One_Detail = requests.get(url=Detail_Url, headers=Headers)
One_Detail_Html = One_Detail.content.decode('gbk')
# print(One_Detail.content.decode('gbk'))
Detail_Html = etree.HTML(One_Detail_Html)
Detail_Content = Detail_Html.xpath("//div[@id='Zoom']")[0]
print(etree.tostring(Detail_Content).decode('utf-8'))
# 只允许请求一次
break
输出内容如下:
(4)准确定位
那就是定位每一个参数了,代码如下:
剩余内容请转至VX公众号 “运维家” ,回复 “173” 查看。
------ “运维家” ,回复 “173” ------
------ “运维家” ,回复 “173” ------
------ “运维家” ,回复 “173” ------
在Linux中的命令,linux实时线程,linux中tail,如何调用linux的epoll,linux无故多出很多进程,linux怎么打开xls文件,linux怎样用命令打开软件,程序员要不要装linux系统,LINUX通用链表实例;
usb无法安装linux,类似安卓linux,在linux中压缩解压命令,512老电脑linux,linux中退出根目录,linux自定义自启的脚本,linux管理员用户名是,新装的linux网卡配置,linux修改u盘权限失败,c语言linux下开发软件。
网友评论