pythonrequests爬虫使用教程(Python 通过requests实现腾讯新闻抓取爬虫的方法)
pythonrequests爬虫使用教程
Python 通过requests实现腾讯新闻抓取爬虫的方法最近也是学习了一些爬虫方面的知识。以我自己的理解,通常我们用浏览器查看网页时,是通过浏览器向服务器发送请求,然后服务器响应以后返回一些代码数据,再经过浏览器解析后呈现出来。而爬虫则是通过程序向服务器发送请求,并且将服务器返回的信息,通过一些处理后,就能得到我们想要的数据了。
以下是前段时间我用python写的一个爬取tx新闻标题及其网址的一个简单爬虫:
首先需要用到python中requests(方便全面的http请求库)和 beautifulsoup(html解析库)。
通过pip来安装这两个库,命令分别是:pip install requests 和 pip install bs4 (如下图)
先放上完整的代码
|
# 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( "li.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 |
我们需要的仅仅是某些特定标签里的内容:
可以看出,每条新闻链接、标题都在<li class="text">标签的<em class="f14 124">标签下
之后我们将刚刚请求得到的html代码进行处理,这时候就需要用到beautifulsoap库了
|
soup = beautifulsoup(wbdata, 'lxml' ) |
这一行的意思是对获取的信息进行解析处理,也可以将lxml库换成html.parser库,效果是相同的
|
news_titles = soup.select( "li.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只是比较常用的一种而已。其他语言中也会有许多爬虫方面的库,例如php可以使用curl库。爬虫的原理都是一样的,只是用不同语言、不同库来实现的方法不一样。
以上这篇python 通过requests实现腾讯新闻抓取爬虫的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/guangmingsky/article/details/72844395
- python 配置文件环境变量(python环境路径配置以及命令行运行脚本)
- python语言支持多态(Python实现多态、协议和鸭子类型的代码详解)
- pythonmatplotlib条形图动画(Python Matplotlib实现三维数据的散点图绘制)
- python开发的独立商城(python实现电子产品商店)
- python接口管理系统(基于Python实现用户管理系统)
- python快速数据分类(Python基于滑动平均思想实现缺失数据填充的方法)
- python如何编写定时器(python 定时器,轮询定时器的实例)
- python如何新建虚拟环境(详解如何管理多个Python版本和虚拟环境)
- python3yield使用教程(python中yield的用法详解——最简单,最清晰的解释)
- python基础教程常用函数整理(Python基础之函数的定义与使用示例)
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- python的mqtt循环发布(python 发送和接收ActiveMQ消息的实例)
- python统计字符类型和数量(python统计中文字符数量的两种方法)
- pythonhash使用(详解python中的hashlib模块的使用)
- python一分钟认识条件判断(对python判断ip是否可达的实例详解)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
- 冯骥才 年意(冯骥才年意)
- ()
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
热门推荐
- vue插槽的分类(vue具名插槽的基本使用实例)
- python柱状图第四节(python使用Plotly绘图工具绘制柱状图)
- php框架初始化教程学习(PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解)
- mac更改mysql密码(Mac下mysql 8.0.22 找回密码的方法)
- 麒麟安装教程(在麒麟V10服务器上编译安装Storm的详细过程)
- laravel前后端分离模块化(laravel 实现划分admin和home 模块分组)
- nginx+ssl配置详解(nginx配置ssl实现https的方法示例)
- SQL Server无法连接远程数据库的解决方法
- 护卫神主机大师教程(护卫神主机大师Linux登录账户密码忘记的解决办法)
- docker容器使用redis服务(docker安装redis设置密码并连接的操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9