Python 通过requests实现腾讯新闻抓取爬虫的方法


Posted in Python onFebruary 22, 2019

最近也是学习了一些爬虫方面的知识。以我自己的理解,通常我们用浏览器查看网页时,是通过浏览器向服务器发送请求,然后服务器响应以后返回一些代码数据,再经过浏览器解析后呈现出来。而爬虫则是通过程序向服务器发送请求,并且将服务器返回的信息,通过一些处理后,就能得到我们想要的数据了。

以下是前段时间我用python写的一个爬取TX新闻标题及其网址的一个简单爬虫:

首先需要用到python中requests(方便全面的http请求库)和 BeautifulSoup(html解析库)。

通过pip来安装这两个库,命令分别是:pip install requests 和 pip install bs4 (如下图)

Python 通过requests实现腾讯新闻抓取爬虫的方法

先放上完整的代码

# coding:utf-8
import requests
from bs4 import BeautifulSoup
 
url = "http://news.qq.com/"
# 请求腾讯新闻的URL,获取其text文本
wbdata = requests.get(url).text
# 对获取到的文本进行解析
soup = BeautifulSoup(wbdata,'lxml')
# 从解析文件中通过select选择器定位指定的元素,返回一个列表
news_titles = soup.select("div.text > em.f14 > a.linkto")
 
# 对返回的列表进行遍历
for n in news_titles:
  title = n.get_text()
  link = n.get("href")
  data = {
    '标题':title,
    '链接':link
  }
  print(data)

首先引入上述两个库

import requests
from bs4 import BeautifulSoup

然后get请求腾讯新闻网url,返回的字符串实质上就是我们手动打开这个网站,然后查看网页源代码所看到的html代码。

wbdata = requests.get(url).text

我们需要的仅仅是某些特定标签里的内容:

Python 通过requests实现腾讯新闻抓取爬虫的方法

Python 通过requests实现腾讯新闻抓取爬虫的方法

可以看出,每条新闻链接、标题都在<div class="text">标签的<em class="f14 124">标签下

之后我们将刚刚请求得到的html代码进行处理,这时候就需要用到BeautifulSoap库了

soup = BeautifulSoup(wbdata,'lxml')

这一行的意思是对获取的信息进行解析处理,也可以将lxml库换成html.parser库,效果是相同的

news_titles = soup.select("div.text > em.f14 > a.linkto")

这一行是利用刚刚经过解析获取的soup对象,选择我们需要的标签,返回值是一个列表。列表中存放了我们需要的所有标签内容。也可以使用BeautifulSoup中的find()方法或findall()方法来对标签进行选择。

最后用 for in 对列表进行遍历,分别取出标签中的内容(新闻标题)和标签中href的值(新闻网址),存放在data字典中

for n in news_titles:
  title = n.get_text()
  link = n.get("href")
  data = {
    '标题':title,
    '链接':link
  }

data存放的就是所有的新闻标题和链接了,下图是部分结果

Python 通过requests实现腾讯新闻抓取爬虫的方法

这样一个爬虫就完成了,当然这只是一个最简单的爬虫。深入爬虫的话还有许多模拟浏览器行为、安全问题、效率优化、多线程等等需要考虑,不得不说爬虫是一个很深的坑。

python中爬虫可以通过各种库或者框架来完成,requests只是比较常用的一种而已。其他语言中也会有许多爬虫方面的库,例如php可以使用curl库。爬虫的原理都是一样的,只是用不同语言、不同库来实现的方法不一样。

以上这篇Python 通过requests实现腾讯新闻抓取爬虫的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中文竖排显示的方法
Jul 28 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
itchat接口使用示例
Oct 23 Python
python编程羊车门问题代码示例
Oct 25 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
Dec 14 Python
对python中dict和json的区别详解
Dec 18 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
python实现超级玛丽游戏
Mar 18 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
Python 中的单分派泛函数你真的了解吗
Jun 22 Python
深入浅析Django MTV模式
Sep 04 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 #Python
浅谈python3.6的tkinter运行问题
Feb 22 #Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 #Python
在Python运行时动态查看进程内部信息的方法
Feb 22 #Python
Python开启线程,在函数中开线程的实例
Feb 22 #Python
python 多线程串行和并行的实例
Feb 22 #Python
Python OOP类中的几种函数或方法总结
Feb 22 #Python
You might like
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
asp 取文本框名称代码
2008/12/02 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python随机读取文件实现实例
2017/05/25 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
主题班会开场白
2015/06/01 职场文书
情感电台广播稿
2015/08/18 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
python微信智能AI机器人实现多种支付方式
2022/04/12 Python