爬虫平凡来说就是抓取网页数据,比如说各人都喜欢的妹子图、小视频呀,另有电子书、笔墨品评、商品详情等等。
只要网页上有的,都可以通过爬虫爬取下来。
一样平常而言,python爬虫必要以下几步:
- 找到必要爬取内容的网页URL
- 打开该网页的查抄页面(即查察HTML代码,按F12快捷键即可进入)
- 在HTML代码中找到你要提取的数据
- 写python代码举行网页哀求、分析
- 存储数据
固然会撸python是条件,对于小白来说自学也不是件容易的事,必要花相当的时间去顺应python的语法逻辑,而且要对峙亲手敲代码,不绝练习。
如果对自己没有自大,也可以思量看编程课程,跟着老师的节奏去学习,能比力快地把握python语法体系,也能得到充实的案例练习。
在默认你已经有python根本的条件下,来说一说怎样写代码举行网页哀求、分析。
网页哀求意思是把网页的HTML源码下载下来。
好了,接下来我们一步步按照套路把本题目标信息都趴下来!
一、找到必要爬取网页的URL
这个很容易,该题目标url:https://www.zhihu.com/question/21358581
我们必要爬取四个信息:
二、打开该网页的查抄页面
保举利用chrome欣赏器实践,会和本文利用同步。
打开本题目标网页:
按F12键进入开发者页面:
三、在HTML代码中找到你要提取的数据
点击开发者页面左上角的‘选择元素’箭头:
然后再点击网页上的题目形貌,这时间开发者界面上出现HTML源码:
你想要的题目形貌笔墨,就藏在html源码里:
我们要爬取的第一个信息已经找到,按照上面步调,可以找到别的三个信息在html中的位置。
四、写python代码举行网页哀求、分析
这一步大概是各人最最关心的,由于涉及到python代码。
实在这里对python的要求也仅限于你必要会数据范例、变量、运算符、函数、模块之类的简单语法。
由于我们会用到好几个第三方库,资助我们完成网页哀求、分析的工作,你必要做的是知道这些库的利用方法。
如果你对这个过程仍感疑惑,仍保举先看这篇答复:
怎样入门 Python 爬虫?1489 附和 · 61 品评答复编辑
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 requestsfrom lxml import etreeheaders = {'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语法体系,也能得到充实的案例练习。
下面先容几个我经常用的爬虫插件和工具,入门非常简单。
八爪鱼收罗器
八爪鱼是一款面向非技能用户的桌面端爬虫软件,以其可视化利用和强大的模板库而受到青睐。
官网:https://affiliate.bazhuayu.com/zwjzht
「功能与特点:」
- 可视化利用:无需编程根本,通过拖拽即可计划收罗流程。
- 海量模板:内置300+主流网站收罗模板,简化参数设置过程。
- 智能收罗:集成多种人工智能算法,自动化处置惩罚复杂网站场景。
- 自界说收罗:支持笔墨、图片、文档、表格等多种文件范例的收罗。
- 云收罗服务:提供5000台云服务器,实现24小时高效稳固收罗。
「利用方法:」
- 下载并安装八爪鱼收罗器。
- 输入待收罗的网址,开启“欣赏模式”选择具体内容。
- 计划收罗流程,创建收罗使命。
- 开启收罗,并通过“表现网页”查察及时收罗环境。
- 导出收罗数据,选择符合的文件格式举行生存。
亮数据(Bright Data)
亮数据是一款强大的数据收罗工具,以其举世署理IP网络和强大数据收罗技能而闻名。它可以大概轻松收罗各种网页数据,包罗产物信息、代价、品评和交际媒体数据等。
网站:https://get.brightdata.com/weijun
「功能与特点:」
- 举世网络数据收罗:提供一站式服务,将全网数据转化为结构化数据库。
- 商用署理网络:拥有凌驾7200万个IP,覆盖195个国家,逐日更新上百万IP。
- 高效数据收罗:可以大概到达170000哀求/秒,天天处置惩罚高达1PT的网络流量。
- 技能驱动:拥有超3300项授权专利申报,连续引领行业创新。
- 稳固性:提供99.99%的稳固运行时间,纵然在网络高峰期间也能保持稳固。
「利用方法:」
- 注册亮数据账号。
- 创建爬虫使命,选择符合的数据源和爬虫模板或编写爬虫代码。
- 设置使命参数,包罗收罗规则和数据存储选项。
- 启动使命,开始数据收罗。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|