初识python 之 爬虫:爬取豆瓣电影最热评论
主要用到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 之 爬虫:爬取豆瓣电影最热评论的更多相关文章
- Python爬虫爬取豆瓣电影之数据提取值xpath和lxml模块
工具:Python 3.6.5.PyCharm开发工具.Windows 10 操作系统.谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title.链接地址.图片.评价人数.评分等 网址:https:// ...
- python 爬虫&爬取豆瓣电影top250
爬取豆瓣电影top250from urllib.request import * #导入所有的request,urllib相当于一个文件夹,用到它里面的方法requestfrom lxml impor ...
- Python小爬虫——抓取豆瓣电影Top250数据
python抓取豆瓣电影Top250数据 1.豆瓣地址:https://movie.douban.com/top250?start=25&filter= 2.主要流程是抓取该网址下的Top25 ...
- Python爬虫爬取豆瓣电影名称和链接,分别存入txt,excel和数据库
前提条件是python操作excel和数据库的环境配置是完整的,这个需要在python中安装导入相关依赖包: 实现的具体代码如下: #!/usr/bin/python# -*- coding: utf ...
- python爬虫-爬取豆瓣电影数据
#!/usr/bin/python# coding=utf-8# 作者 :Y0010026# 创建时间 :2018/12/16 16:27# 文件 :spider_05.py# IDE :PyChar ...
- python3 爬虫---爬取豆瓣电影TOP250
第一次爬取的网站就是豆瓣电影 Top 250,网址是:https://movie.douban.com/top250?start=0&filter= 分析网址'?'符号后的参数,第一个参数's ...
- Scrapy-redis分布式爬虫爬取豆瓣电影详情页
平时爬虫一般都使用Scrapy框架,通常都是在一台机器上跑,爬取速度也不能达到预期效果,数据量小,而且很容易就会被封禁IP或者账号,这时候可以使用代理IP或者登录方式爬,然而代理IP很多时候都很鸡肋, ...
- Python爬虫-爬取豆瓣电影Top250
#!usr/bin/env python3 # -*- coding:utf-8-*- import requests from bs4 import BeautifulSoup import re ...
- Python开发爬虫之静态网页抓取篇:爬取“豆瓣电影 Top 250”电影数据
所谓静态页面是指纯粹的HTML格式的页面,这样的页面在浏览器中展示的内容都在HTML源码中. 目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/t ...
随机推荐
- 渐进式web应用 (PWA)
PWA(渐进式 Web 应用)运用现代的 Web API 以及传统的渐进式增强策略来创建跨平台 Web 应用程序. PWA的特点: Discoverable, 内容可以通过搜索引擎发现. Instal ...
- 【MySQL】排名函数
https://www.cnblogs.com/shizhijie/p/9366247.html 排名函数 主要有rank和dense_rank两种 区别: rank在排名的时候,排名的键一样的时候是 ...
- EntityFramework Core (一)记一次 .net core 使用 ef 6
使用传统的sql去操作数据库虽然思路更加清晰,对每一步数据库读写操作都能监控到,但是对大数据存储,或存储规则复杂的程序就需要编写大量的SQL语句且不易维护..orm大大方便了复杂的数据库读写操作, 让 ...
- 华为云函数中使用云数据库的JavaScript SDK基础入门
背景介绍 使用云数据库Server端的SDK,此处我以华为提供的官方Demo为例,他们的Demo也已经开源放在了GitHub上,大家需要的可以自行下载. https://github.com/AppG ...
- Jenkins配置代码化
目录 一.简介 二.init.groovy 脚本命令行调试 一.简介 Jenkins用久了,会有一种莫名的紧张感.因为没人清楚Jenkins都配置了什么,以至于没人敢动它. 但凡使用界面进行配置的都会 ...
- Nginx区分PC和手机
目录 一.简介 二.配置 nginx识别手机端跳转到wap pc端跳转移动端 一.简介 有时候需要当手机访问PC站页面时自动跳转到对应的手机站页面. 二.配置 nginx识别手机端跳转到wap 即手机 ...
- [BUUCTF]PWN18——bjdctf_2020_babystack
[BUUCTF]PWN18--bjdctf_2020_babystack 附件 步骤: 例行检查,64位,开启了nx保护 试运行一下程序 大概了解程序的执行过程后用64位ida打开,shift+f12 ...
- IDEA 无法显示 Run Dashboard 的解决方法
前言 最近开始接触微服务的项目,项目很多有时候本地调测需要启动多个项目,看到同事都是使用dashboard管理项目,服务和端口排列的整整齐齐.但是我dashboard里面啥都没有,一顿百度最后解决问题 ...
- Windows的Nginx服务可视化界面安装
先安装Nginx服务 启动 Windows安装Nginx服务 参考:https://www.cnblogs.com/pxblog/p/14871932.html 下载软件 https://github ...
- ubuntu 16.04 server安装Bittorrent Transmission
访问web服务 使用http://192.168.1.8:9091 这样的方式管理下载. http://192.168.1.8:9091/transmission/web/ 操作服务 sudo ser ...