【爬虫实战】Python爬取“磁力熊”网站

蚂蚁学Python

共 648字,需浏览 2分钟

 · 2021-11-07

最近跟随蚂蚁老师学习了用flask框架开发web项目以及爬虫,我就打算自己开发一个电影网站练练手,其中很重要的一步就是获取电影资源。

于是我就从网上找到了一个叫“磁力熊”的网站获取资源

网站:https://www.cilixiong.com/movie/


第一步:我们需要获取这个网站里面的每个分页的HTML代码

所以得找网站分页的规律

可以发现,除了第一页以外,都可以用https://www.cilixiong.com/movie/index_页数.html的方式得到,第一页是https://www.cilixiong.com/movie/index.html


第二步,找每个电影的信息藏在何处

通过浏览器的“检查元素“功能查看页面的html代码,可以发现每页的电影信息都藏在了

这个区域内

更进一步发现,所有电影的缩略图都在

下的
内的若干个div区域中


对其中一个电影缩略图进行分析,发现电影的详情页面就在这些div区域中的a标签里

电影的名字和电影封面图,都可以分别在img标签里的alt和data-original中得到


第三步,查看电影详情信息

对html代码进行分析,可以发现电影的详细信息都在标签中

第0个span标签是电影名称,第1个是豆瓣评分,第2个是上映日期...

而电影的下载地址则是在


第四步,根据上面的分析过程写代码


运行结果如下



源代码:


import requestsfrom bs4 import BeautifulSoup
# 目的urlurl = "https://www.cilixiong.com/movie/index#d#.html"
# 要爬取的分页数量pages_number = 2
for idx in range(1, pages_number + 1): # 如果爬取第一页,把删掉就行了 if idx == 1: temp_url = url.replace("#d#", "") # 除了第一页以外的其它元素 用_页数来代替#d# else: temp_url = url.replace("#d#", f"_{idx}") # 发起该分页的请求 r = requests.get(temp_url) # 状态码要是不等于200就抛出异常 if r.status_code != 200: print(r.status_code) raise Exception() # 设置编码为utf-8 防止乱码 r.encoding = "utf-8" # 设置解析器 soup = BeautifulSoup(r.text, "html.parser") # 根据上面所说的内容 设置具体解析内容 得到该分页下的所有电影内容 movie_list = ( soup.find("div", class_="masonry masonry-demos") .find("div") .find_all("div") ) # 对该分页下的所有电影内容进行解析 for movie in movie_list: a_tag = movie.find("a") # 这就是每个电影详情的链接 link = a_tag.get("href") img_tag = a_tag.find("figure").find("img") # 电影名称 name = img_tag.get("alt") # 电影封面图 img_url = img_tag.get("src")
# 对电影的详情信息发出请求 r = requests.get(link) r.encoding = "utf-8" soup = BeautifulSoup(r.text, "html.parser") # 磁力链接 cili_link = soup.find("div", class_="tabs-container").find("a").get("href") # 豆瓣得分 score = soup.find("span", class_="tiny-title").find("span").get_text()
print(f"电影名称:{name} 电影封面图:{img_url} 豆瓣得分:{score} 磁力链接:{cili_link}")


最后推荐下蚂蚁老师的爬虫课,干货十足:


        扫码购买:Python开发简单爬虫实战


点击阅读原文,也可以到达目的地。

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报