初始python 之 爬虫:爬取豆瓣电影最热评论

不废话,直接上干货:

#!/user/bin env python
# author:Simple-Sir
# time:2019/7/17 22:08
# 获取豆瓣网正在上映电影最热评论
import requests
from lxml import etree

# 伪装浏览器
headers ={
    ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36‘,
    ‘Referer‘:‘https://movie.douban.com/‘
}
# 获取首页网页信息并解析
url = ‘https://movie.douban.com/cinema/nowplaying/chengdu/‘

def getUrlText(url):
    respons = requests.get(url,headers=headers)  # 获取网页信息
    urlText = respons.text
    html = etree.HTML(urlText)  # 使用lxml解析网页
    return html

# 提取电影名称及详情地址链接列表
def getWallUrl(url):
    hrefUrl = getUrlText(url)
    ul = hrefUrl.xpath(‘//ul[@class="lists"]‘)[0]  # 获取ul标签
    liList = ul.xpath(‘./li‘)  # # 获取li标签列表
    liHrefs = []
    for li in liList:
        liHref = li.xpath(‘.//@href‘)[0]
        name = li.xpath(‘@data-title‘)[0]
        msg = {
            name:liHref
        }
        liHrefs.append(msg)
    return liHrefs

# 解析电影详情地址
def downPL(url):
    moveUrl = getWallUrl(url)
    n=0
    for murl in moveUrl:
        n+=1
        for d in murl:
            plHtml = getUrlText(murl[d])
            plTextFull = plHtml.xpath(‘//div[@id="hot-comments"]//span[@class="hide-item full"]//text()‘)
            plTextShort = plHtml.xpath(‘//div[@id="hot-comments"]//span[@class="short"]//text()‘)
            if(len(plTextFull)==0 and len(plTextShort)>0):
                print(‘正在写入《{}》的评论。‘.format(d))
                with open(‘豆瓣评论.txt‘,‘a+‘,encoding=‘utf-8‘) as fp:
                    fp.write(‘{}、《{}》的最热评论是:\n{}\n\n‘.format(n,d,plTextShort[0]))
            elif(len(plTextFull)>0):
                print(‘正在写入《{}》的评论。‘.format(d))
                with open(‘豆瓣评论.txt‘,‘a+‘,encoding=‘utf-8‘) as fp:
                    fp.write(‘{}、《{}》的最热评论是:\n{}\n\n‘.format(n,d,plTextShort[0]))
            else:
                print(‘正在写入《{}》的评论。‘.format(d))
                with open(‘豆瓣评论.txt‘,‘a+‘,encoding=‘utf-8‘) as fp:
                    fp.write(‘{}、《{}》暂无评论!\n\n‘.format(n,d))
    return print(‘{}部电影的所有评论已全部写入“豆瓣评论.txt”,请查看。‘.format(n))

if __name__ == ‘__main__‘:
    downPL(url)

执行效果:

文件详情:

原文地址:https://www.cnblogs.com/simple-li/p/11219586.html

时间: 2024-10-03 02:54:37

初始python 之 爬虫:爬取豆瓣电影最热评论的相关文章

Python爬虫爬取豆瓣电影名称和链接,分别存入txt,excel和数据库

前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- import urllibimport urllib2import sysimport reimport sslimport openpyxlimport MySQLdbimport time #from bs4 import BeautifulSoup #修改系统默认编码为utf-8

用Scrapy爬虫爬取豆瓣电影排行榜数据,存储到Mongodb数据库

爬虫第一步:新建项目 选择合适的位置,执行命令:scrapy startproje xxxx(我的项目名:douban) 爬虫第二步:明确目标 豆瓣电影排行url:https://movie.douban.com/top250?start=0, 分析url后发现srart=后面的数字,以25的步长递增,最大为225,所以可以利用这个条件来发Request请求 本文只取了三个字段,电影名.评分和介绍,当然你想去更多信息也是可以的 item["name"]:电影名 item["r

Python小爬虫——抓取豆瓣电影Top250数据

写LeetCode太累了,偶尔练习一下Python,写个小爬虫玩一玩~ 确定URL格式 先找到豆瓣电影TOP250任意一页URL地址的格式,如第一页为:https://movie.douban.com/top250?start=0&filter=,分析该地址: https:// 代表资源传输协议使用https协议: movie.douban.com/top250 是豆瓣的二级域名,指向豆瓣服务器: /top250 是服务器的某个资源: start=0&filter= 是该URL的两个参数,

python爬虫爬取豆瓣电影前250名电影及评分(requests+pyquery)

写了两个版本: 1.面向过程版本: import requests from pyquery import PyQuery as pq url='https://movie.douban.com/top250' moves=[] def sec(item): return item[1] for i in range(0,255,25): content=requests.get(url+"?start="+str(i))#?start=25 for movie in pq(conte

Python网络爬虫爬取贴吧话题热议榜单(可自定义条数)

以上为页面结构 import pandas as pd import requests as rq from bs4 import BeautifulSoup url="http://tieba.baidu.com/hottopic/browse/topicList?res_type=1" def res_caputure(): try: res = rq.get(url,timeout=30) res.raise_for_status() res.encoding = res.app

运维学python之爬虫高级篇(五)scrapy爬取豆瓣电影TOP250

对于scrapy我们前面已经介绍了简单的应用,今天我们用一个完整的例子,爬取豆瓣电影TOP250来做一个小的练习,把scrapy阶段做一个总结. 1 环境配置 语言:Python 3.6.1 IDE: Pycharm 浏览器:firefox 爬虫框架:Scrapy 1.5.0 操作系统:Windows 10 家庭中文版 2 爬取前分析 2.1 需要保存的数据 首先确定我们要获取的内容,在items中定义字段,来将非结构化数据生成结构化数据,获取的内容主要包括:排名.电影名称.得分.评论人数.如下

Python开发简单爬虫之静态网页抓取篇:爬取“豆瓣电影 Top 250”电影数据

目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/top250 1)确定目标网站的请求头: 打开目标网站,在网页空白处点击鼠标右键,选择"检查".(小编使用的是谷歌浏览器). 点击"network",在弹出页面若长时间没有数据显示,则试一下F5刷新. 可以得到目标网页中Host和User-Agent两项. 2)找到爬取目标数据(即电影名称)在页面中的位置 右键"检查",选择"Elem

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动

第一个nodejs爬虫:爬取豆瓣电影图片

第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require('https'); //使用https模块 var fs = require('fs');//文件读写 var cheerio = require('cheerio');//jquery写法获取所得页面dom元素 var request = require('request');//发送reques