脚本之家

你与百万开发者在一起

作者:江一

出品 | 脚本之家(ID:jb51net)

网络爬虫是帮助我们抓取互联网上有用信息的利器。如果你有一点python基础,实现一个简单的爬虫程序并不难。今天,我们以一个实际的例子——爬取网易新闻,重点介绍使用 BeautifulSoup 对HTML进行解析处理。

1.寻找数据特征

网易新闻的网址 URL 为:https://www.163.com/我们打开网页看看:

我们需要爬取这个页面每一条新闻的标题,鼠标右击一条新闻的标题,选择“检查元素”, 出现下图的窗口:

图片中蓝框的位置就是那一条新闻标题在 HTML 中的结构、位置和表现形式: ,它上一级元素为:,再上一级元素为:

再上一级元素为:

我们再看另一条新闻的标题,发现它的结构和之前我们分析的新闻标题的结构是一样的。通过这些信息,我们就可以确定新闻标题在 HTML 文档中的位置。接下来,我们开始使用 Python 对网易新闻标题进行爬取。

2.编写爬取代码

首先呈上完整的代码:

运行程序,获取到的部分结果为如下所示:

这正是我们所需要的。虽然代码很简单,但还是做一点点讲解,方便刚接触的同学理解。

3.逐行解析代码

# coding:utf-8

首先,我们定义了文件的编码形式为 UTF-8,以避免一些编码错误导致中文乱码。importrequests

frombs4importBeautifulSoup

然后,我们引入了相关的模块,requests 用于 HTTP 请求,BeautifulSoup 用于解析 HTML 响应。

url ='https://www.163.com/'

设置一个变量 url,值为网易新闻的 URL 。wbdata = requests.get(url).text

使用 requests.get()对 URL 发起 GET 方式的 HTTP 请求,并使用 text()方法获取响应的文本 内容,最后将其赋值给变量 wbdata。

soup =BeautifulSoup(wbdata,'lxml')

使用 BeautifulSoup 对响应文本 wbdata 进行解析处理,这里使用的是 lxml 库,如何没有安 装,可以使用 Python 自带的 html.parser,效果也是一样的。news_titles = soup.select('div>ul>li>a')

在解析后的文本中,使用select选择器,在文本中选择指定的元素,通常我们还会使用find() 和 findall()方法来进行元素选择。这一步返回的为一个列表,列表内的元素为匹配的元素 的 HTML 源码。

forninnews_titles:

title = n.get_text()

link = n.get('href')

data = {

'标题':title,

'链接':link

}

print(data)

对结果列表进行遍历,再从遍历的元素中提取出数据,get('href')表示获取属性名为“hre的属性值,get_text()表示获取标签的文本信息。这样,一个简单的网易新闻爬虫就完成了。

如果想学习更多 requests 模块和 BeautifulSoup 模块的内容,它们的官方文档将是最好的指南。

参考文档:1.requests 官方文档(中文):

http://docs.python-requests.org/zh_CN/latest/

2.BeautifulSoup 文档(中文):

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

作者:江一

python爬网易新闻_爬虫入门:如何用python爬取网易新闻?相关推荐

  1. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

  2. python机器学习及实践_机器学习入门之《Python机器学习及实践:从零开始通往Kaggle竞赛之路》...

    本文主要向大家介绍了机器学习入门之<Python机器学习及实践:从零开始通往Kaggle竞赛之路>,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. <Python 机 ...

  3. python怎么画人像_教你如何用Python画出心目中的自己

    原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...

  4. 爬虫python代码网易云_爬虫实战(二) 用Python爬取网易云歌单

    最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 "用技术改变生活" 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇 ...

  5. 图片链接用src不能被爬虫爬到吗_爬虫:带你一键爬取王者荣耀英雄皮肤壁纸

    一.前言 王者荣耀这款手游,想必大家都玩过或听过,游戏里英雄有各式各样的皮肤,制作得很精美,有些拿来做电脑壁纸它不香吗.本文带你利用Python爬虫一键下载王者荣耀英雄皮肤壁纸. 1. 目标 创建一个 ...

  6. python时钟编程教程_编程入门16:Python时间操作

    Python标准库包含有一个time模块用于基本的时间处理,其中的time()函数会读取系统时钟并返回float类型的Unix纪元"时间戳"(Timestamp),即当前时间距离国 ...

  7. python tkinter treeview 高亮_满满的成就感~如何用python让你的想法拥有可操作性?(一)...

    想法:用python+tkinter+pypyodbc+xlrd+xlwt实现从已有数据库调取你想要的数据,生成EXCEL.xls文件. 生活处处有Idea 一.需求分析. 完成的界面如下图,左上方通 ...

  8. python训练营 朋友圈_教你如何用python来弄一个高逼格的朋友圈

    小编今天要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是小编发的一个朋友圈 切图前是 ...

  9. python制作自动化办公_教你如何用Python制造一款自动化办公软件脚本!下班,下班...

    1 PySimpleGUI安装 在命令行/终端输入:pip install pysimplegui,等待安装完成后,进入python环境,输入import PySimpleGUI回车无误后,确认安装成 ...

  10. python如何画圆环_教你如何用Python制作出好看的动态圆环图、饼图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以 ...

最新文章

  1. 使用Mocks进行需求驱动的软件开发
  2. 企业实战_21_MyCat_keepalived 安装配置验证
  3. redission java_Java注解如何基于Redission实现分布式锁
  4. 计算特征矩阵及哈希值(含OpenCV代码)
  5. 【洛谷P4315】月下“毛景树”(树链剖分)
  6. Linux 命令(94)—— env 命令
  7. 对于NAS,IP SAN以及iSCSCI SAN存储的一些认识和理解
  8. mschart控件使用详解
  9. OTDR使用中测试与误差原因分析
  10. 云计算机房架构图,云计算架构技术与实践
  11. php短信验证码随机数_深入解读PHP短信验证码原理
  12. 英飞凌XC2000系列单片机FLASH加解密策略
  13. 原生js实现点击按钮显示/隐藏图片
  14. 【VESC】一.配置开发环境、烧录固件
  15. 如何运用计算机教学教学的收获,计算机教学中行动感悟法的应用
  16. Python基础复习--print()函数、转义符、变量命名
  17. kubernetes 入门介绍
  18. 盘点 yMatrix 创业的530天:1.01^530,苟日新,日日新,又日新
  19. Java应用系统监控看这篇就够了
  20. 自己写的小型静态服务器

热门文章

  1. android百度地图导航功能开发,Android百度地图应用开发基础知识
  2. Unity3D Odin Inspector 简单介绍与入门
  3. ivx动效按钮 基础按钮制作 01
  4. c语言bmp图片读取融合保存,BMP_READ_WRITE 完全用C语言实现BMP图像的读取和保存 - 下载 - 搜珍网...
  5. 数据中台之数据集成平台的数据抽取
  6. 什么是计算机剪贴板介绍,剪贴板功能介绍
  7. 什么是计算机剪贴板介绍,剪贴板在哪里,详细教您如何打开电脑剪贴板
  8. iperf 服务端发送数据_iperf 流量测试
  9. Head First 系列书籍分享,Head First Python (中文版·第2版),Head First Java(中文版):第二版——涵盖Java 5.0...
  10. 关于TRACERT和TTL