• 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)
  • 相关阅读:
    (转)Android Studio解决unspecified on project app resolves to an APK archive which is not supported
    OpenGL 学习总结
    关于tap设备
    写把proto函数搞清楚
    qemu中是怎么模拟的新的设备
    kvm搭建完成了,那么问题来了,到底是什么原理
    kvm竟然抓不到kvm的tracepoint
    安装KVM
    试着理解下kvm
    网络namespace
  • 原文地址:https://www.cnblogs.com/lweiser/p/11042658.html
Copyright © 2020-2023  润新知