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代码来绘制彭罗斯点阵的教程
Apr 03 Python
python中的闭包用法实例详解
May 05 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python运维自动化之nginx配置文件对比操作示例
Aug 29 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
python递归下载文件夹下所有文件
Aug 31 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 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
ajax取消挂起请求的处理方法
2013/03/18 PHP
PHP可变函数的使用详解
2013/06/14 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
2018/01/31 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
Python的高级Git库 Gittle
2014/09/22 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python简单的制作图片验证码实例
2017/05/31 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
会计系毕业生求职信
2014/05/28 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书