主要用到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. String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?

    原理知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的.如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那 ...

  2. elasticSearch索引库查询的相关方法

    package com.hope.es;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.c ...

  3. JDK各版本新增的主要特性总结

    JDK1.5新特性: 1.自动装箱与拆箱: 2.枚举 3.静态导入,如:import staticjava.lang.System.out 4.可变参数(Varargs) 5.内省(Introspec ...

  4. SQLserver 2014自定义备份数据库

    一.管理-维护计划-维护计划向导-下一步 二.点击更改设置任务执行时间-确定-下一步 三.选择备份数据库完整-下一步 四.选择需要备份的数据库-然后确定 五.点目标自定义备份文件存储目录-下一步 六. ...

  5. [BUUCTF]REVERSE——[FlareOn4]IgniteMe

    [FlareOn4]IgniteMe 附件 步骤: 例行检查,32位程序,无壳 32位ida载入 当满足第10行的if条件时,输出G00d j0b!提示我们成功,看一下sub_401050函数 3.s ...

  6. 成本计算?(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 成本各种输入以后就该计算了是吗? 其实,计算有我什么事啊,不都是些四则运算吗?Project要是连这都搞不定,他还在地球上 ...

  7. 深度解析HashMap

    讲讲HashMap? 源码解析 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { //辅助 ...

  8. 【LeetCode】376. Wiggle Subsequence 解题报告(Python)

    [LeetCode]376. Wiggle Subsequence 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.c ...

  9. 【LeetCode】36. Valid Sudoku 解题报告(Python)

    [LeetCode]36. Valid Sudoku 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址 ...

  10. 【LeetCode】445. Add Two Numbers II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先求和再构成列表 使用栈保存节点数字 类似题目 日期 ...