python 爬虫电影天堂简单示例
前 言
1. 爬虫简介
在一些实际项目操作过程中,可能会经常遇到爬虫的需求,然后将获得的数据进行处理或写入数据库。
爬虫业务中经常设计到几个开源库,requests,bs4,pandas,pymysql
requests是用来根据url获取相关的网页信息;
bs4主要是用来进行网页的解析;
pandas用来处理一些数据;
pymysql主要用来操作数据库,将必要的数据存入到目标数据库。
2. 爬虫简单示例
本次demo主要是以大家常用来下载电影的 电影天堂 网站来简单地实操一下爬虫业务,目的:获取电影天堂中 2022新片精品 中前7页的电影网址和名称。
2.1 确定相关的url
我们在点击了更多这个按钮,并随便点击了第2页和第1页,发现他们的url除了页码不一样,其他部分都是一样的,如下:
https://m.dytt8.net/html/gndy/dyzz/list_23_1.html 即.html 前面的数字代表当前的页数。所以我们每一页的url可以为
URL = "https://m.dytt8.net/html/gndy/dyzz/list_23_{}.html" ,然后通过format函数和for循环遍历每一页。
2.2 代码编写
import requests
from bs4 import BeautifulSoup
URL = "https://m.dytt8.net/html/gndy/dyzz/list_23_{}.html"
BASE_URL = "https://m.dytt8.net/"
def get_movie(url):
response = requests.get(url)
# print(response.headers)
# print(response.content)
text = response.content.decode("gbk")
return text
def parser_movie(text):
parser_after = BeautifulSoup(text, "html.parser")
return parser_after
def find_movie(target_movie):
movie = target_movie.find("div", class_="co_content8")
back_movie = movie.find_all("a", class_="ulink")
for each in back_movie:
each_movie_url = each.get("href")
each_movie_name = each.text
print(BASE_URL + each_movie_url, each_movie_name)
if __name__ == "__main__":
for i in range(1, 8):
movie_final = get_movie(URL.format(i))
parser_final = parser_movie(movie_final)
find_movie_final = find_movie(parser_final)
print("this is white line...........................................")
1. get_movie函数主要是用来获取最原始未经处理的html数据,这里我们可以通过print(response.content)来获取header格式,如下图所示:

可以知道,是gpk加解密的格式,那么我们可以通过 text = response.content.decode("gbk") 来解密原生的html数据,可以避免乱码的出现。
2. 在拿到解密后的html数据后,可以通过bs4中的BeautifulSoup模块来解析html text格式的数据并以html的标准格式存在,即类似于网站页面,通过
开发工具进取的原始div等页面格式,方便浏览数据的层次和格式并获取需要的数据。
3. 拿到类似开发工具页面的html数据后,就可以通过find或者find_all来获取某一个层级的内容了。在这里我们想要获取每一个电影的url以及名称,通过
对页面的分析,发现它可以在"div", class_="co_content8" 下面 "a", class_="ulink"找到,通过get函数获取url,通过text属性获取文字。
2.3 运行主代码,获取最终结果
运行主程序,获取最终的结果如下图所示:
结 语
未完待续......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?