zoukankan      html  css  js  c++  java
  • Python抓取豆瓣电影top250!

    前言

    一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧。当然如果你学的不好,建议可以先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目,一起交流学习进步!

    实现目标:抓取豆瓣电影top250,并输出到文件中

    1.找到对应的url:https://movie.douban.com/top250

    2.进行页面元素的抓取:

    3.编写代码:

      第一步:实现抓取第一个页面;

      第二步:将其他页面的信息也抓取到;

      第三步:输出到文件;

    4.代码: 

    import sys
    import io
    from selenium import webdriver

    #改变标准输出,解决输出到文件时遇到的编码问题。
    # 如果输出到控制行,不要加这一行
    # sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')

    class DouBan:
    #初始化driver对象,打开页面,最大化页面
    def __init__(self):
    self.driver=webdriver.Chrome()
    self.driver.get('https://movie.douban.com/top250')
    self.driver.maximize_window()

    # 分页判断,默认显示第一页,输出第一页后,点击下一页按钮,再输出。总共10页
    def get_content(self):
    for page in range(1,10):
    #获取元素定位: 对当前页面中 单个电影元素进行定位
    movie = self.driver.find_elements_by_class_name('info')

    # for循环:循环输出当前页面中单部影片的电影信息(text输出元素的文本内容);
    i = 1
    for item in movie:
    #输出格式: 电影序号 + 电影介绍 +换行展示
    print(str(i+ page*25-25)+": "+item.text+'')
    print("")
    i+=1

    # 判断:如果当前页面码小于10,则查找页码的元素,并点击页码。否则不用进行查找,因为最多点击第10页;
    # 获取底部的页签元素(采用了format格式输出,根据当前页面做加1操作)
    if page<10:
    page_but = self.driver.find_element_by_xpath('//div[@class="paginator"]//a[contains(text(),{0})]'.format(page + 1))
    page_but.click()
    else:
    pass

    if __name__ == '__main__':
    DouBan().get_content()

    5.结果:

    1)控制台输出部分截图:

    2)如果想要输出到文件,执行命令并重定向到TXT文件中:

     python xxxx.py >d:/out_test.txt

    6.遇到的问题:

    1.多页时,for循环的数字设置,来回试几次就可以了,不难。

    2.输出到文件中

     真的很简单,不知道你们都懂了没? 如果没懂可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目,一起交流学习进步!有问题留言问我吧~

  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12014704.html
Copyright © 2011-2022 走看看