第5课|第5课 实例二(爬取电影)

一、爬取前的准备工作 1. 选择一个网站:https://www.douban.com
2. 在进行爬取之前,我们先去看看它的robots协议。
协议网址:https://www.douban.com/robots.txt
3. 进入首页 https://movie.douban.com/top250?start=0&filter= ,打开检查工具,在Elements里查看这个网页,是什么结构。
点击开发者工具左上角的小箭头,选中“肖申克的救赎”,这样就定位了电影名的所在位置,审查元素中显示:标签内的文本,class属性;推荐语和评分也是如此,,;序号:标签内的文本,class属性;推荐语;链接是标签里href的值。最后,它们最小共同父级标签,是


  • 4. 我们再换个电影验证下找的规律是否正确。
    5. check后,我们再看一共10页,每页的url有什么相关呢?
    第1页:https://movie.douban.com/top250?start=0&filter=
    第3页:https://movie.douban.com/top250?start=50&filter=
    第7页:https://movie.douban.com/top250?start=150&filter=
    发现只有start后面是有变化,规律就是第N页,start=(N-1)*25
    6. 基于以上分析,我们有两种写爬虫的思路。
    思路一:先爬取最小共同父级标签
  • ,然后针对每一个父级标签,提取里面的序号/电影名/评分/推荐语/链接。
    【第5课|第5课 实例二(爬取电影)】思路二:分别提取所有的序号/所有的电影名/所有的评分/所有的推荐语/所有的链接,然后再按顺序一一对应起来。
    二、代码实现过程(思路一) import requests# 引用requests库
    from bs4 import BeautifulSoup# 引用BeautifulSoup库
    res_films=requests.get('https://movie.douban.com/')# 获取数据
    bs_films=BeautifulSoup(res_films.text,'html.parser')# 解析数据
    fil_title=bs_films.find_all(class_='title')
    fil_num=bs_films.find_all(class_="")
    list_all=[]# 创建一个空列表,用于存储信息
    for x in range(len(fil_num)):
    list_films=[fil_num[x].text[18:-14],fil_title[x].find('a')['href']]
    list_all.append(list_films)
    print(list_all)

      推荐阅读