通俗的讲,网络爬虫到底是什么?
爬虫通俗来说就是抓取网页数据,比如说大家都喜欢的妹子图、小视频呀,还有电子书、文字评论、商品详情等等。
只要网页上有的,都可以通过爬虫爬取下来。
一般而言,python爬虫需要以下几步:
- 找到需要爬取内容的网页URL
- 打开该网页的检查页面(即查看HTML代码,按F12快捷键即可进入)
- 在HTML代码中找到你要提取的数据
- 写python代码进行网页请求、解析
- 存储数据
当然会撸python是前提,对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。
如果对自己没有自信,也可以考虑看编程课程,跟着老师的节奏去学习,能比较快地掌握python语法体系,也能得到充分的案例练习。
在默认你已经有python基础的前提下,来说一说如何写代码进行网页请求、解析。
网页请求意思是把网页的HTML源码下载下来。
好了,接下来我们一步步按照套路把本问题的信息都爬下来!
一、找到需要爬取网页的URL
我们需要爬取四个信息:
- 问题描述
- 问题补充
- 关注者数
- 被浏览数
二、打开该网页的检查页面
推荐使用chrome浏览器实践,会和本文操作同步。
打开本问题的网页:
按F12键进入开发者页面:
三、在HTML代码中找到你要提取的数据
点击开发者页面左上角的‘选择元素’箭头:
然后再点击网页上的问题描述,这时候开发者界面上出现HTML源码:
你想要的问题描述文字,就藏在html源码里:
我们要爬取的第一个信息已经找到,按照上面步骤,可以找到其它三个信息在html中的位置。
四、写python代码进行网页请求、解析
这一步可能是大家最最关心的,因为涉及到python代码。
其实这里对python的要求也仅限于你需要会数据类型、变量、运算符、函数、模块之类的简单语法。
因为我们会用到好几个第三方库,帮助我们完成网页请求、解析的工作,你需要做的是知道这些库的使用方法。
Part 1
这里用到的用于网页请求的库是requests,一个非常流行的http请求库。
这里请求的是什么?不是原谅、也不是理解,而是网页的html信息。
服务器收到请求后,会返回相应的网页对象。
Requests库会自动解码来自服务器的内容,大多数 unicode 字符集都能被无缝地解码。
这一切requests都能妥妥地搞定。
我们来尝试下:
import requests
headers = {'User-Agent':你的浏览器headers}
# 传入url和请求头
r = requests.get('https://www.zhihu.com/question/21358581',headers=headers)
# 响应的内容
print(r.text)
我们会接收到服务器返回的页面,requests解析后,呈现下面这样子:
这就是我们需要的html源码呀!
接下来要做的就是从html中抽取我们需要的四个信息。
Part 2
通过网页请求,我们获取到响应的html文档,我们需要的东西都在这个文档里。
但是怎么去抽取信息呢?
XPath 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
这里用到另一个有用的库xpath,xpath库可以让你轻松的使用XPath语言查找信息。
既然XPath是在XML文档中才能起作用,然而我们刚刚获取的html只是文本字符串。
所以需要把html文档转换为XPath可以解析的对象:lxml.etree._Element(xml/html文件树中的一个节点)。
接着上面代码:
# 将html文档转换为XPath可以解析的
s = etree.HTML(r.text)
Part 3
这下我们可以使用xpath库来进行信息的提取了。
xpath的使用方法这里不赘述了,大家可以网上搜搜资料,个半小时也能学会。
这里介绍一种简单的方法,你在开发者页面中找到对应信息的源码后,直接右键复制xpath地址:
但复制的xpath很有可能会导致获取的信息为空,所以我这里用标签的属性来获取对应文本。
接上面代码:
# 获取问题内容
q_content = s.xpath('//*[@class="QuestionHeader-title"]/text()')[0]
# 获取问题描述
q_describe = s.xpath('//*[@class="RichText ztext"]/text()')[0]
# 获取关注数和浏览量,这两个属性一样
q_number = s.xpath('//*[@class="NumberBoard-itemValue"]/text()')
concern_num = q_number[0]
browing_num = q_number[1]
# 打印
print('问题:',q_content,'\n','描述:',q_describe,'\n','关注数:',concern_num,'\n','浏览量:',browing_num)
最终呈现的结果:
全部代码:
import requests
from lxml import etree
headers = {'User-Agent':你的浏览器headers}
r = requests.get('https://www.zhihu.com/question/21358581',headers=headers)
s = etree.HTML(r.text)
# 获取问题内容
q_content = s.xpath('//*[@class="QuestionHeader-title"]/text()')[0]
# 获取问题描述
q_describe = s.xpath('//*[@class="RichText ztext"]/text()')[0]
# 获取关注数和浏览量,这两个属性一样
q_number = s.xpath('//*[@class="NumberBoard-itemValue"]/text()')
concern_num = q_number[0]
browing_num = q_number[1]
# 打印
print('问题:',q_content,'\n','描述:',q_describe,'\n','关注数:',concern_num,'\n','浏览量:',browing_num)
结论
好了,关于这个问题的信息已经通过python爬下来。
初学的小伙伴自己尝试再多爬些内容,练习requests和xpath的使用,爬虫也就能入门了。
对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
四、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、Python练习题
检查学习结果。
七、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。
通俗的讲,网络爬虫到底是什么?相关推荐
- python爬虫是什么概述_通俗的讲,网络爬虫到底是什么?
且听小宅来分享分享: 我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛.把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息.可以把节点间的连线比作网页与网页之 ...
- 【学习教程系列】最通俗的 Python3 网络爬虫入门
很多朋友学习Python都是先从爬虫开始,其原因不外两方面: 其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃. 要使用python语言做爬虫,首先需要学 ...
- python网络爬虫到底合不合法?怎么样才算合法?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云 作者:python学习教程 想要学习Python?有问题得不到第 ...
- 百度爬虫爬到虚拟链接 网站被黑_什么是网络爬虫?原理是什么?种类有多少?...
ins @ngadc 前言 我相信很多人都听说过(网络)爬虫,但不清楚这到底是个什么概念.本文借助网上相关资料,进行简单地汇总整理.爬虫还是比较敏感,在简书发文章,竟然发不了... 目录 什么是网络爬 ...
- 网络爬虫之java基础(Ⅰ)
目录 1Java中maven的使用 2log4j log4j的介绍 log4j提供的几种方法 使用步骤 3输入流与输出流 数据的读写程序以及map的使用 这张图为我给自己研究所人讲网络爬虫的一个流程, ...
- Python入门教程:什么是网络爬虫
什么是网络爬虫呢?网络爬虫又叫网络蜘蛛(Web Spider),这是一个很形象的名字,把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.严格上讲网络爬虫是一种按照一定的规则,自动地抓 ...
- 网络爬虫:魔道祖师小说
好奇总被人提及的网络爬虫到底是什么技术,于是也想用,我的需求是可以下载小说.文献摘要.还有各种生信数据库的网站抓取等,先拿我喜欢的魔道祖师小说来练手. 如果懂点HTML/CSS/JS的话,基于网页的标 ...
- 14.网络爬虫—selenium详讲
网络爬虫-selenium详讲 一·selenium简介 Selenium 的优点 二·安装模块 三·设置浏览器驱动 确认版本: 查找对应驱动 下载驱动 四·使用模块 selenium选取元素方法 s ...
- Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)
Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...
最新文章
- json 字符串传到action之后的处理,遍历. 练习代码片
- 关于ORACLE RAC心跳问题的释疑
- 快速组建的开发团队要怎么活下来?
- 【OpenCV3】图像最大轮廓检测——cvFindBiggestContour()封装
- 提升CUDA程序运行效率的几个关键点
- Mybatis Plus——[Could not set property 'id' of '***' with value]解决方案
- java主类与源代码名称_java 获取操作系统名称 附源代码
- 11小时 python自动化测试从入门到_从设计到开发Python接口自动化测试框架实战,资源教程下载...
- 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境
- 固态硬盘—国内视频行业的暂时救星?
- 耐人深思的总结,牛牛牛
- Git 常用命令 和 安装
- [简短问答]如何用虚拟打印机测试,虚拟打印机相关
- 288芯光缆交接箱光交箱图文详解
- python——keyword模块
- 今生梦一场,思念你的殇
- VNC_Linux环境服务安装、配置与使用
- MYSQL 面试常见问题汇总
- 三、神奇的自然常数e之“自然”兄弟
- 巴克莱、高盛支持区块链衍生品领域的ISDA标准
热门文章
- 正则表达式,密码规则
- 【华为思科】访问web服务器
- Linux 学习 第六单元
- Ubuntu(debian)问题解决方案合集
- 酒店评论数据分析和挖掘-展现数据分析全流程(一)报告展示篇
- ROS基础---ros通信、ros发布者publisher、publisher.cpp、Talker.cpp
- 【邢不行|量化小讲堂系列24-Python量化入门】股票自动程序化下单交易 | 视频教程
- gitHub不能用密码推送了,必须要使用令牌
- intellidea写java_用IntellIDEA开发JSP的一些总结 | 学步园
- 群晖NAS教程(二十二)、利用Docker安装minio