主要用到lxml的etree解析网页代码,xpath获取HTML标签。

代码如下:

 1 #!/user/bin env python
2 # author:Simple-Sir
3 # time:2019/7/17 22:08
4 # 获取豆瓣网正在上映电影最热评论
5 import requests
6 from lxml import etree
7
8 # 伪装浏览器
9 headers ={
10 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
11 'Referer':'https://movie.douban.com/'
12 }
13 # 获取首页网页信息并解析
14 url = 'https://movie.douban.com/cinema/nowplaying/chengdu/'
15
16 def getUrlText(url):
17 respons = requests.get(url,headers=headers) # 获取网页信息
18 urlText = respons.text
19 html = etree.HTML(urlText) # 使用lxml解析网页
20 return html
21
22 # 提取电影名称及详情地址链接列表
23 def getWallUrl(url):
24 hrefUrl = getUrlText(url)
25 ul = hrefUrl.xpath('//ul[@class="lists"]')[0] # 获取ul标签
26 liList = ul.xpath('./li') # # 获取li标签列表
27 liHrefs = []
28 for li in liList:
29 liHref = li.xpath('.//@href')[0]
30 name = li.xpath('@data-title')[0]
31 msg = {
32 name:liHref
33 }
34 liHrefs.append(msg)
35 return liHrefs
36
37 # 解析电影详情地址
38 def downPL(url):
39 moveUrl = getWallUrl(url)
40 n=0
41 for murl in moveUrl:
42 n+=1
43 for d in murl:
44 plHtml = getUrlText(murl[d])
45 plTextFull = plHtml.xpath('//div[@id="hot-comments"]//span[@class="hide-item full"]//text()')
46 plTextShort = plHtml.xpath('//div[@id="hot-comments"]//span[@class="short"]//text()')
47 if(len(plTextFull)==0 and len(plTextShort)>0):
48 print('正在写入《{}》的评论。'.format(d))
49 with open('豆瓣评论.txt','a+',encoding='utf-8') as fp:
50 fp.write('{}、《{}》的最热评论是:\n{}\n\n'.format(n,d,plTextShort[0]))
51 elif(len(plTextFull)>0):
52 print('正在写入《{}》的评论。'.format(d))
53 with open('豆瓣评论.txt','a+',encoding='utf-8') as fp:
54 fp.write('{}、《{}》的最热评论是:\n{}\n\n'.format(n,d,plTextShort[0]))
55 else:
56 print('正在写入《{}》的评论。'.format(d))
57 with open('豆瓣评论.txt','a+',encoding='utf-8') as fp:
58 fp.write('{}、《{}》暂无评论!\n\n'.format(n,d))
59 return print('{}部电影的所有评论已全部写入“豆瓣评论.txt”,请查看。'.format(n))
60
61 if __name__ == '__main__':
62 downPL(url)

获取豆瓣网正在上映电影最热评论

执行效果:

文件详情:

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

  1. Python爬虫爬取豆瓣电影之数据提取值xpath和lxml模块

    工具:Python 3.6.5.PyCharm开发工具.Windows 10 操作系统.谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title.链接地址.图片.评价人数.评分等 网址:https:// ...

  2. python 爬虫&爬取豆瓣电影top250

    爬取豆瓣电影top250from urllib.request import * #导入所有的request,urllib相当于一个文件夹,用到它里面的方法requestfrom lxml impor ...

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

    python抓取豆瓣电影Top250数据 1.豆瓣地址:https://movie.douban.com/top250?start=25&filter= 2.主要流程是抓取该网址下的Top25 ...

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

    前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf ...

  5. python爬虫-爬取豆瓣电影数据

    #!/usr/bin/python# coding=utf-8# 作者 :Y0010026# 创建时间 :2018/12/16 16:27# 文件 :spider_05.py# IDE :PyChar ...

  6. python3 爬虫---爬取豆瓣电影TOP250

    第一次爬取的网站就是豆瓣电影 Top 250,网址是:https://movie.douban.com/top250?start=0&filter= 分析网址'?'符号后的参数,第一个参数's ...

  7. Scrapy-redis分布式爬虫爬取豆瓣电影详情页

    平时爬虫一般都使用Scrapy框架,通常都是在一台机器上跑,爬取速度也不能达到预期效果,数据量小,而且很容易就会被封禁IP或者账号,这时候可以使用代理IP或者登录方式爬,然而代理IP很多时候都很鸡肋, ...

  8. Python爬虫-爬取豆瓣电影Top250

    #!usr/bin/env python3 # -*- coding:utf-8-*- import requests from bs4 import BeautifulSoup import re ...

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

    所谓静态页面是指纯粹的HTML格式的页面,这样的页面在浏览器中展示的内容都在HTML源码中. 目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/t ...

随机推荐

  1. Next_day()函数的用法

    一.定义 NEXT_DAY(date,char)  date参数为日期型,  char:为1~7或Monday/Mon~Sunday/    指定时间的下一个星期几(由char指定)所在的日期,  c ...

  2. 【C/C++】编码(腾讯)

    假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, - -, b, ba, ...

  3. 多个工作簿拆分(Excel代码集团)

    一个文件夹里有N个工作簿,每个工作簿中包括N个工作表,将各个工作表拆分成工作簿,命名为每个工作簿里第一个工作表的A列和B列. 工作簿.工作表数量不定,表内内容不限,拆分后保存于当前文件夹下的" ...

  4. 在对话框中设置前置任务(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 在[任务信息]中的[前置任务]选项卡中设置,这是最古板的法子. 至于[任务信息]这个对话框从哪里去找,这--这么久了,不会 ...

  5. Tornado WEB服务器框架 Epoll-- 【Mysql数据库】

    5.1 数据库 与Django框架相比,Tornado没有自带ORM,对于数据库需要自己去适配.我们使用MySQL数据库. 在Tornado3.0版本以前提供tornado.database模块用来操 ...

  6. 『学了就忘』Linux日志管理 — 90、Linux中日志介绍

    目录 1.日志相关服务 2.系统中常见的日志文件 1.日志相关服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.RedHat认为syslogd已经不能满足在工 ...

  7. 阿里巴巴分布式服务框架HSF

    HSF称之为高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架. HSF连通不同的业务系统,解耦系统间的实现依赖.HSF从分布式 ...

  8. 如何用uniapp+vue开发自定义相机插件——拍照+录像功能

    调用手机的相机功能并实现拍照和录像是很多APP与插件都必不可少的一个功能,今天智密科技就来分享一下如何基于uniapp + vue实现自定义相机界面,并且实现: 1: 自定义拍照 2: 自定义录像 3 ...

  9. Postman环境变量的使用

    前言 请注意,Postman新版有ui上的改动,本文使用的Postman 版本8.4.0 for Mac, ui有调整,但是功能无改变. Postman是一款接口调测的软件,服务端开发的同学肯定会对自 ...

  10. 【九度OJ】题目1113:二叉树 解题报告

    [九度OJ]题目1113:二叉树 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1113 题目描述: 如上所示,由正整数1,2,3-- ...