• 【网络数据采集】python爬取豆瓣top250电影目录


    当你找不到电影看的时候,收藏此篇,方便看。

    1. import requests
    2. from bs4 import BeautifulSoup
    3. def get_movies():
    4. headers = {
    5. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36',
    6. 'Host': 'movie.douban.com'
    7. }
    8. movie_list = []
    9. for i in range(0,10):
    10. link = 'https://movie.douban.com/top250?start=' + str(i * 25)
    11. r = requests.get(link, headers=headers, timeout=10)
    12. print(str(i+1), "页响应状态码:", r.status_code)
    13. soup = BeautifulSoup(r.text, "lxml")
    14. div_list = soup.find_all('div', class_='hd')
    15. for each in div_list:
    16. movie = each.a.span.text.strip()
    17. movie_list.append(movie)
    18. return movie_list
    19. movies = get_movies()
    20. print(movies)

    我们一点一点的来解析一下:

    1,获取网页响应头

     打开Google Chrome,输入网址:豆瓣电影 Top 250https://movie.douban.com/top250在页面右键点击检查

    进入下面的控制台中,按以下步骤,如果点击All,发现没有东西,可以点击Ctrl+R:

     

     Request 获取方式为GET,Status Code输出200,状态码正常,获得

    User-Agent:

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

    第一页的网址为:https://movie.douban.com/top250

    第二页的网址为:https://movie.douban.com/top250?start=25&filter=

    第三页的网址为:https://movie.douban.com/top250?start=50&filter=

    我们可以看到在start后面是以此增加25,网页我们就可以以这样的办法来表示:

    'https://movie.douban.com/top250?start=' + str(i * 25)

    我们添加上页响应状态码,方便观察爬取进度:

    str(i+1), "页响应状态码:", r.status_code

    如下图显示:

     右键点击网页源码:

     

    最后将得到的电影目录放进列表中,得到:

     

  • 相关阅读:
    [安网杯 2021] REV WP
    泰山OFFICE技术讲座:文字边框高度研究
    Vue项目开发经验
    maven依赖管理
    Mybatis中支持缓存的query与不支持缓存的query
    html+css+php+mysql实现注册+登录+修改密码(附完整代码)
    程序员周末都干些什么?
    缓存失效方案
    NFT的发展会止步于此吗?
    hadoop集群中存在配置较低的数据节点应用如何应对磁盘数据溢满的问题之rebalance
  • 原文地址:https://blog.csdn.net/m0_62919535/article/details/125998898