语言爬虫字段为空_百战程序员分享:爬虫的基本原理

爬虫是网络搜索引擎的重要组成部分,简单理解网络爬虫就是自动抓取网页信息的代码,可以简单理解成代替繁琐的复制粘贴操作的手段。当然,爬虫的对象必须是你已经看到的网页,比如你不能说你想找到知乎上哪个用户的关注人数最多,就希望通过写一个爬虫来帮你爬到答案。你必须明确地知道这个人,找到他的主页,然后才能用爬虫来抓取他页面上的信息。
下面我们用一个简单的例子来展示爬虫的工作流程。下面是一段抓取标题的代码:

5ecc4ccb9b704fbef5a08616cf7c7139.png


上述过程是一个最简单的完整爬虫流程,可以看出它的功能就是把那些标题复制粘贴到一起,免除了手动操作的繁琐。
说到网页请求,就有必要讲一下我们平常浏览网页时,信息交互的模式大概是什么样的。我们平常用浏览器浏览网页的时候,鼠标点了一个链接,比如你现在点击这里,其实浏览器帮你向这个网页发送了请求(request),维护网页的服务器收到了这个请求,判定这个请求是有效的,于是返回了一些响应信息(response)到浏览器,浏览器将这些信息进行渲染(可以理解成组合编译展示),就是你看到的网页的样子了。

3718b84cd15aff797d8a374b3652faf1.png


而现在我们要用代码来模拟这一过程。尚学堂·百战程序员陈老师指出上面的requests.get就是让代码帮你向这个网页发送了这个请求,如果请求被判定为有效,网页的服务器也会把信息传送给你,传送回来的这些信息就被赋值到变量r之中。所以这个变量r里就包含有我们想要的信息了,也包括那些我们想要提取的标题。
网页解析其实就从网页服务器返回给我们的信息中提取我们想要数据的过程。其实使用正则表达式提取我们要的标题的过程也可以称为网页解析。因为当前绝大多数网页源代码都是用HTML语言写的,而HTML语言时非常有规律性的,比如我们要的所有文章标题都具有相同结构,也就是说它周围的字符串都是非常类似的,这样我们才能批量获取。所以就有大佬专门封装了如何从HTML代码中提取特定文本的库,也就是我们平时说的网页解析库,如bs4 lxml pyquery等,其实把他们当成处理字符串的就可以了。
当我们要爬一个网页的时候,只需要如下流程:
导入两个库,一个用于请求,一个用于网页解析;
请求网页,获得源代码;
初始化soup对象,使其可以调用更简单易用的方法;
用浏览器打开网页,右键-检查,使用那个鼠标定位你要找的资源的位置;
分析那个位置的源代码,找到合适的用于定位的标签及属性;
编写解析代码,获得想要的资源。
现在,对于一些没有丝毫反爬措施的网站我们都可以游刃有余了。至于抓取多个字段的数据如何组织在一起、抓取多页(URL有规律的情况下)的代码如何设计,就不是爬虫知识范畴了,这是用python基础知识就可以解决的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值