文章目录

  • 一.网页分析
  • 二.代码实现
  • 三.总结

一.网页分析

本次爬取目标网站为 https://www.163.com/dy/article/G0F6HT9A051186GP.html
爬取对象为新闻标题, 发布时间, 来源, 正文以及图片。

首先,判断目标页面获取数据方式。F12或鼠标右键检查打开"开发者模式",点击Network,刷新页面后可以看到返回了很多数据包,点击第一个可以从右侧response看到服务器返回的响应数据。复制新闻标题,Ctrl+F查找标题是否在响应数据中,结果高亮显示说明目标网页是直接通过后台服务器返回数据的。因此确定接下来请求URL地址为目标网站地址。
(同时在Elements中也定位到了标题)

接着,分析response的DOM结构,设计xpath表达式获取各个新闻元素数据。

  1. 新闻标题。定位到标签后,xpath表达式为//*[@id="contain"]/div[1]/h1/text()
  2. 新闻发布时间\来源。定位到标签后,xpath表达式为//*[@id="contain"]/div[1]/div[2]/text()。这里发布时间和来源是同一行文字,爬取下来后在做处理。
  3. 新闻正文。新闻正文包括图片内容是在 div class="post_body"标签下的所有p标签和ul标签下。因此将新闻正文可以直接定位定位到p标签下,再通过//text()提取p标签以下的所有文本内容。而图片则通过//image/@src提取。

二.代码实现

实现代码如下:

import requests
import re
from lxml import etreeurl = 'https://www.163.com/dy/article/G0F6HT9A051186GP.html'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
response = requests.get(url=url, headers=headers).text
tree = etree.HTML(response)
# 新闻标题
title = ''.join(tree.xpath('//*[@id="contain"]/div[1]/h1/text()'))
# 新闻发布时间及来源
publish = ''.join(tree.xpath('//*[@id="contain"]/div[1]/div[2]/text()')).replace(' ','').replace('\n','')
# 新闻正文
content = tree.xpath('//*[@id="content"]/div[2]/p//text()|//*[@id="content"]/div[2]/ul//text()')
content = [i  for i in content if '△' not in i if re.match(r'[\u3000]+$', i) is None]
content = ''.join([b+'\n' if b.endswith(('。', '!', ';', '?')) else b for b in content ])
# 新闻图片
image = tree.xpath('//*[@id="content"]/div[2]/p//img/@src')
print('\n标题:\n', title)
print('\n发布时间及来源:\n', publish)
print('\n正文:\n', content)
print('\n图片:\n', image)

运行结果

三.总结

总体比较顺利, 难点不多,中间需要注意的点如下:

  1. 整体流程: 分析网页数据获取方式>找到正确的数据包>构造请求,设计xpath表达式解析数据>数据存储。
  2. 正文解析部分因要清晰过滤部分杂质, 使用了包括if或者多个if_else判断多种情况的列表推导式, 使代码整体看上去更加简化流畅。
  3. 此外,正文解析部分还涉及到①正则匹配 re.match([\u3000]+$, i)②判断字符串的开头和结尾是否是某个字符/多个字符中的某一个。元组会逐一匹配。 string.startswith/endswith(str/tuple)

【Python爬虫实战】爬取网易新闻某详情页信息 1.0相关推荐

  1. Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)

    Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...

  2. python爬虫实战---爬取大众点评评论

    python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  3. python爬虫实战-爬取视频网站下载视频至本地(selenium)

    #python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...

  4. python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述

    http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...

  5. Python+beautifulsoup+requests 爬取网易新闻评论

    前段时间在看处理数据相关的书籍,实践中需要一些网上评论的文本数据集,所以想到爬取网易新闻底下的评论.本来想着Python+beautifulsoup(解析)+requests(抓取),最后存储在txt ...

  6. python爬虫实战--爬取猫眼专业版-实时票房

    小白级别的爬虫入门 最近闲来无事,发现了猫眼专业版-实时票房,可以看到在猫眼上映电影的票房数据,便验证自己之前学的python爬虫,爬取数据,做成.svg文件. 爬虫开始之前 我们先来看看猫眼专业版- ...

  7. python爬虫实战-爬取小说

    今天做一个爬虫练手的小实战:爬取顶点小说网的小说,实现下载到本地(虽然网站上本来就可以下载,不过还是自己写代码来有成就感嘛!) 爬取网站 进入官网后,点击元尊,就爬取这本书了. 我们先把整个网页爬下来 ...

  8. 04-python简单爬虫_爬取网易新闻

    # -*- coding: utf-8 -*- import os import sys import requests import re from lxml import etree"& ...

  9. 爬虫实战——爬取腾讯招聘的职位信息(2020年2月2日)

    爬取腾讯招聘的职位信息 思路分析 特别说明 1.获取PostId列表 2.爬取详情页面 3.保存数据 完整代码 结果展示 总结分析 思路分析 特别说明 本文以Java工作岗位信息为例进行说明,如果想爬 ...

最新文章

  1. UVALive5379 UVA270 Lining Up
  2. Java内存管理的9个小技巧
  3. 新华三,定义服务器虚拟化市场新格局
  4. Python帮你识破双11的套路
  5. Tarjan缩点/边双/点双
  6. SOA架构设计经验分享—架构、职责、数据一致性
  7. xml层级工具_.NET的类型层次查看工具,ClassHierarchyViewer,0.3.0.1
  8. day3 java的运算符及其注意问题
  9. jquery获取加载的html内容,jquery 获取ajax加载的html中部分内容
  10. Android开发中的全屏背景显示方案
  11. do_fork实现--下
  12. svn update出现database is locked
  13. C++天天练——两点间的距离
  14. 微信小程序自动定位当前位置
  15. 部署程序出现Failed to instantiate com.octo.captcha.service.image.DefaultManageableImageCaptchaService...
  16. easyui Datagrid的deleteRow多行移除问题
  17. 实战HTML:部分美团首页静态界面
  18. oracle中 greatest、east、coalesce
  19. 谷歌网盘扩容 - Google Drive Upgrade
  20. 违法占耕辅助处理软件

热门文章

  1. java 代码以管理员身份运行 cmd命令_Win10 开启以管理员身份运行
  2. swustoj手机打字(1185)
  3. W6 BinarySearch
  4. vue 获取数组索引_Vue - 数组方法
  5. 计算机音乐runfree,抖音RunFree歌曲歌词完整版 抖音RunFree歌曲MP3视频完整版
  6. IP地址分类、子网划分和无分类编址
  7. 《社会心理学》第六章学习笔记
  8. 超级有意思且非常实用的心理学小窍门
  9. 爬取全民K歌主页上的歌
  10. Java+ElasticSearch+Pytorch实现以图搜图