前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬取腾讯新闻首页资讯标题

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

作者头像
啃饼思录
发布2018-10-15 17:32:45
2.1K0
发布2018-10-15 17:32:45
举报

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

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

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

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”的属性值。

完整的代码如下:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 啃饼思录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档