Python爬虫04-xpath爬取豆瓣韩剧数据
xpath爬取豆瓣韩剧数据
需求:爬取豆瓣韩剧的标题、评分、评论以及详情页地址。
1、导入模块
import requests
from lxml import etree
import csv
2、分析每一页链接的规律
https://www.douban.com/doulist/2942804/?start=0&sort=seq&playable=0&sub_type= 第1页
https://www.douban.com/doulist/2942804/?start=25&sort=seq&playable=0&sub_type= 第2页
https://www.douban.com/doulist/2942804/?start=50&sort=seq&playable=0&sub_type= 第3页
所以 n=(page-1) * 25
3、获取url、模拟浏览器
baseurl='https://www.douban.com/doulist/2942804/?start={}&sort=seq&playable=0&sub_type='
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
4、定义函数
返回源码
def getSource(url):response=requests.get(url,headers=headers)return response.content.decode('utf-8')
爬取标题、评分、评论以及详情页地址
def getmain(source):element=etree.HTML(source)movies=element.xpath('//div[@class="mod"]')# 展示信息 [{标题:XXX,评分:xxx,},{},{}]movieList=[]for movie in movies:# 存储 标题 评分 评论 详情页的地址movieDict={}
xpath语法查找
title=movie.xpath('div[@class="bd doulist-subject"]/div[@class="title"]/a/text()')score=movie.xpath('div[@class="bd doulist-subject"]/div[@class="rating"]/span[@class="rating_nums"]/text()')comment=movie.xpath('div[@class="ft"]/div[@class="comment-item content"]/blockquote/text()')link=movie.xpath('div[@class="bd doulist-subject"]/div[@class="post"]/a/@href')
爬取为空列表的判断
if title:title=title[0]else:title=''if score:score=score[0]else:score=''if comment:comment=comment[1]else:comment=''if link:link=link[0]else:link=''
添加字典键值对,追加并返回列表
movieDict['title']=titlemovieDict['score']=scoremovieDict['comment']=commentmovieDict['link']=linkmovieList.append(movieDict)print(movieList)return movieList
写入数据
def writeData(movieList):# newline='' 设置为空字符串with open('hanjuTV.csv','w',encoding='utf-8',newline='') as f:writer=csv.DictWriter(f,fieldnames=['title','score','comment','link'])writer.writeheader() # 写入表头for i in movieList:writer.writerow(i)if __name__ == '__main__':movieList=[]for j in range(10):# 获取每一个列表页urlpagelink=baseurl.format(j*25)# 获取每一页的源码数据source=getSource(pagelink)# 获取数据 movieList = movieList + getEveryItem(source) 注意点movieList += getmain(source)writeData(movieList)
Python爬虫04-xpath爬取豆瓣韩剧数据相关推荐
- Python爬虫入门 | 4 爬取豆瓣TOP250图书信息
先来看看页面长啥样的:https://book.douban.com/top250 我们将要爬取哪些信息:书名.链接.评分.一句话评价-- 1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...
- Python爬虫入门(爬取豆瓣电影信息小结)
Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...
- Python爬虫:Xpath爬取网页信息(附代码)
Python爬虫:Xpath爬取网页信息(附代码) 上一次分享了使用Python简单爬取网页信息的方法.但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求.对于一般的数据需求,我们通常需要从一个 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题
python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...
- 利用python爬取天气预报_python实现天气爬虫——利用xpath爬取七天天气预报数据...
python实现天气爬虫--利用xpath爬取七天天气预报数据 import pandas as pd import lxml import requests import csv from lxml ...
- python爬虫实践之爬取豆瓣高评分电影
目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 整理总结 概述 爬取豆瓣的高评分的电影. 准备 所需模块 re模块 requests模块 涉及知识点 ...
- python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评
目的:爬取豆瓣[红海行动]电影的首页短评 步骤: 1.使用BeautifulSoup解析网页 soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂 ...
- python爬虫,Scrapy爬取豆瓣电影《芳华》电影短评,分词生成词云图。
项目github地址:https://github.com/kocor01/scrapy_cloud Python版本为3.6 自己写的简单架构<python爬虫,爬取豆瓣电影<芳华> ...
最新文章
- 全字库说文解字字体_整理了10款免费商用中文字体,超好用
- leetcode 1738. 找出第 K 大的异或坐标值
- 安卓开发仿微信图片拖拽_Android 仿微信朋友圈图片拖拽返回
- Java彻底 - WEB容器的侦听具体解释 ServletContextListener
- 爬虫基本原理及requests,response详解
- 3项目里面全局用less变量 cli vue_如何把 CSS 变量全局化
- win10系统打开/解压缩文件时出现文件名乱码
- win10虚拟服务器安装xp,win10安装xp虚拟机安装教程_win10安装xp虚拟机详细步骤
- 新手阿里云服务器操作指南(图文教程)
- 12星座的出生年月日性格_十二星座的出生日期及对应性格
- CDH集群更换IP处理方法
- 2021年数字IC面经---平头哥
- java md5加密64位_MD5加密的Java实现
- el-form 表单的校验
- 三种存储类型:块存储、文件存储、对象存储
- (vue) 前端实现下载本地Excel模板
- PCB设计指南:安规、布局布线、EMC、热设计、工艺
- 连续词袋模型(Continous bag of words, CBOW)
- composer 初级使用
- 在ubantu下安装搜狗
热门文章
- 文案圈内的拿破仑:新媒体推广运营文案创作的黄金法则,黎想手把手教你写出黄金文案
- 学习php技术最快需要多久,学php最快要多久 学习路线
- 关于error LNK2001: unresolved external symbol
- 上海市新闻热线电话一览
- 迁移系统后黑屏 只有鼠标可以动【解决方法】
- python全栈开发工程师招聘_如何当一名优雅的Python全栈开发工程师?
- getHibernateTemplate().bulkUpdate()
- 怎么做竞价托管,流程是怎么样的?
- 代码人,代码魂,我在Windows跑Linux!
- Redis-day01-note