爬取腾讯新闻首页资讯标题

实战第一篇:爬取腾讯新闻首页资讯标题

终于进入到我们的实战内容篇了,因为是第一篇,所以找一个简单的例子给大家介绍爬取的详细过程,这既是对基础篇知识的运用,也是增强大家往后学习的动力。

目标:爬取腾讯新闻首页资讯内容

1、分析站点,找规律

腾讯新闻的网址为:http://news.qq.com/ 我们打开网页看一看:

我们今天的任务是爬取首页每一条新闻的标题,先鼠标右击一条新闻的标题,选择出现的“检查”(我用的是chrome,其他浏览器可能是审查元素),出现下图的窗口:

图片中黄色框的位置就是那一条新闻标题在HTML中的结构位置:

<a target="_blank" class="linkto" href="http://news.qq.com/a/20180607/20180607A20YP5.htm">蔡英文亲信接受质询 一时紧张就暴露“卧底”身份</a>

它上一级元素为:<em class="f14 l24">,再上一级元素为:<div class="text">

我们再看另一条新闻的标题,发现它的结构和之前我们分析的新闻标题的结构是一样的:

<div class="text">

<em class="f14 l24">

<a target="_blank" class="linkto" href="http://news.qq.com/a/20180608/006430htm">特朗普称如会晤顺利可能邀请金正恩访美

</a>

</em>

</div>

有了这些信息,我们就可以确定新闻标题在HTML文档中的位置。 然后我们开始对腾讯新闻首页标题进行爬取。

2.写代码,开始爬取网页

我们先确定一下标题的详细位置,采用css selector来选取元素:

使用BeautifulSoup对响应文本wb_data进行解析处理,这里我个人比较喜欢使用是lxml库,如果没有安装,你可以使用Python自带的html.parser,其效果也是一样的。

对结果列表进行遍历的时候,先遍历,再从遍历的元素中提取出单个数据,get_text()表示获取标签的文本信息,get("href")表示获取属性名为“href”的属性值。

完整的代码如下:

import requests
from bs4 import BeautifulSoup
# 导入相关的模块
url = "http://news.qq.com/"
# 腾讯新闻的首页网址
web_data = requests.get(url) # 获取文本信息
soup = BeautifulSoup(web_data.text, "lxml")  # 对获取到的文本信息进行解析
news = soup.select("a.linkto")  # 从解析的文本中通过select选择器定位指定的元素,返回一个列表
for x in news:   # 对返回的列表进行遍历
    title = x.get_text()   # 取出标题,采用get_text()方法
    link = x.get("href")  # 取出链接,采用get("href")方法
    data = {
        '标题': title,
        '链接': link
    }
    print(data)  # 输出文章标题

3、代码输出结果

怎么样?是不是觉得自己很厉害!给自己鼓个掌先,撒个花先!

总结一下:

本例采用requests+ Beautiful的形式对腾讯新闻首页资讯标题进行

了爬取,对于小白而言这是最容易懂的爬取例子。后面随着学习的

不断深入,我们会挑战一些更有趣的,更难的例子。对了,如果你对requests和BeautifulSoup不明白或是有很强的渴望,可以查看它们的官方文档:(我这里贴一下地址)

requests官方文档(中文): http://docs.python-requests.org/zh_CN/latest/

BeautifulSoup文档(中文): https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

原文发布于微信公众号 - 啃饼思录(kbthinking)

原文发表时间:2018-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小特工作室

WinForm中播放视频示例(含源码)

1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是...

2276
来自专栏SEO

页脚、内容和导航中的链接如何影响SEO?

29011
来自专栏开源项目

揭秘程序员眼中的 Vue 与 Angular | 码云周刊第 32 期

揭秘程序员眼中的 Vue 与 Angular 一 基于 Vue 的项目 1. 项目名称:基于 Vue.js 的 UI 组件库 ? 项目简介:iView 是一套...

3745
来自专栏姬小光

姬小光前端兴趣班【第008期】- 真正的切图大法

上一期我们使用了 word 转存大法来生成网页,主要是为了帮助大家理解表格布局的原理。那么今天我们就来学习一下真正的切图大法。

1292
来自专栏HTML5学堂

移动端项目经验 JavaScript

HTML5学堂:相对来说,JS在移动端要远远低于PC端的使用频率,因此积累的开发经验并不是太多。在这里简要整理一些JavaScript在移动端的项目经验,主要包...

3758
来自专栏极客编程

用Vue.js开发一个电影App的前端界面

我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目。这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WE...

2.2K1
来自专栏繁花云

巧用js替换某些不能替换的文字

在运行某些程序时,作者为了保护版权,将版权文字进行了特殊处理,使得我们无法进行修改。

1320
来自专栏腾讯社交用户体验设计

微信小程序初体验(上)

2812
来自专栏微信小程序开发

小程序中布局突然乱掉了,到底是怎么个情况?

就在上周,突然很多用户反馈,都说小小签到布局乱掉了(线上有四款小程序都收到这样的反馈,这里我就不广告了),经过客服反复沟通,找到了布局乱掉的必现条件: 1、IO...

42216
来自专栏互联网杂技

20个为前端开发者准备的文档和指南7

1. DevTools Challenger 它是一个交互式的站点,演示了如何在Firefox开发者版本里使用其拥有的新的相关动画功能。 ? 2. The HT...

3675

扫码关注云+社区

领取腾讯云代金券