zoukankan      html  css  js  c++  java
  • python爬虫实践——爬取“豆瓣top250”

     1 '''
     2 主页:
     3     https://movie.douban.com/top250
     4     GET
     5     User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36
     6 
     7 re正则:
     8     # PS: 电影详情页url、图片链接、电影名称、导演、主演、电影上映时间、电影评分、评价人数、简介
     9 <div class="item">.*?href="(.*?)">.*?src="(.*?)" class="">.*?<span class="title">(.*?)</span>.*?导演:(.*?).*?主演: (.*?) /...<br>(.*?)</p>.*?content="(.*?)"></span><span>(.*?)人评价.*?<span class="inq">(.*?)</span>
    10 '''
    11 '''
    12 每一页URL:
    13 第一页:https://movie.douban.com/top250
    14 第二页:https://movie.douban.com/top250?start=25&filter=
    15 第三页:https://movie.douban.com/top250?start=50&filter=
    16 .....
    17 第九页:https://movie.douban.com/top250?start=200&filter=
    18 第十页:https://movie.douban.com/top250?start=225&filter=
    19 '''
    20 
    21 import requests
    22 import re
    23 #请求头
    24 headers={
    25     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'
    26 }
    27 
    28 base_url='https://movie.douban.com/top250?start={}&filter='
    29 num=0
    30 for i in range(10):
    31     url=base_url.format(i)
    32     num+=25
    33     print(url)
    34 
    35     #1、往豆瓣发送请求
    36     response=requests.get(url,headers=headers)
    37 
    38     # 2、通过正则解析提取数据
    39     # PS: 电影详情页url、图片链接、电影名称、导演、主演、电影上映时间、电影评分、评价人数、简介
    40     movie_content_list=re.findall('<div class="item">.*?href="(.*?)">.*?src="(.*?)" class="">.*?<span class="title">(.*?)</span>.*?<div class="bd">.*?导演:(.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价.*?<span class="inq">(.*?)</span>',
    41                       response.text,re.S)
    42     #解压赋值每一部电影
    43     for move_content in movie_content_list:
    44         detail_url,image_url,movie_name,acters,movie_time,movie_grade,number,content=move_content
    45         detail_data=f'电影url:{detail_url}, 图片链接:{image_url}, 电影名称:{movie_name}, 导演和主演:{acters},电影上映时间:{movie_time},电影评分:{movie_grade},评价人数:{number},简介:{content}
    '
    46         print(detail_data)
    47 
    48         #保存数据
    49         with open('douban.txt','a',encoding='utf-8')as f:
    50             f.write(detail_data)
  • 相关阅读:
    django:开发一个下载图片的接口
    django:cbv模式和fbv模式的区别
    java生成二维码/java解析二维码
    java如何台生成二维码详解
    html5 WebSocket的Js实例教程
    vue 组件传参
    Vue路由注意事项
    Vue全家桶
    浅谈vue对seo的影响
    vue打包详情
  • 原文地址:https://www.cnblogs.com/lweiser/p/11042658.html
Copyright © 2011-2022 走看看