如何抓取网页数据或爬虫?开发者必须要问自己的问题

优采云 发布时间: 2022-06-28 12:05

  如何抓取网页数据或爬虫?开发者必须要问自己的问题

  如何抓取网页数据或爬虫?这是爬虫开发者必须要问自己的问题,没有什么爬虫是能简单实现的,即使你知道了解决方案和技巧,但是一旦你遇到问题依然会懵逼。我会给大家介绍一下爬虫一般涉及到的几个步骤以及技巧。爬虫其实就是根据网页的内容数据,去爬取网页中的数据。爬虫要爬取的数据包括:网页中的内容,页面源代码中的内容,url地址中的数据,网页地址的数据等等。

  

  如下图所示,我们先看网页源代码中的内容:如图1,我们发现在xhr收到的信息中,有一段源代码:我们可以看到有代码块、li、div以及page两个字段代表了网页中的内容,但是其中page的值用来验证网页来源://真实页面。.html。//没有使用html的div。我们再通过url地址格式验证网页来源的真实性:http/1.1:9000/grafana/index.html。

  data格式的字段在地址中的li下面,所以应该是真实来源://真实来源。但是这个判断的方法并不那么合理。因为即使网页真实来源是//真实来源。在浏览器中也会生成这个地址后缀的html,所以我们需要对网页源代码中的data格式的字段进行验证。javascript解析网页数据的网页数据通常可以分为以下3类:url(真实来源),data(真实来源),page(来源)网页中的所有内容。

  

  因此在javascript的js验证下,前面2类数据不合法。所以应该是真实来源://真实来源。为了解决这个难题,我们就只能从真实来源来验证。这里有2个主要的技巧:第一步,我们使用requests库。首先要解释一下什么是requests库:它是从浏览器获取http请求报文接口。包括但不限于浏览器的user-agent、cookie、http头信息、以及返回的response里面包含的html代码。

  通过这个工具,我们可以轻松的从http请求报文中提取包含来源、地址和网址字段的数据,或者只是把字段替换成自己需要的名字。我们用它做下测试。#百度访问,使用requests库>requests.get("")geturlurlget.data$$data$"".join(map(item=>lambdaitem:item[0]))/tomato/baidu.html$data$"".join(map(item=>lambdaitem:item[1]))withopen('baidu.txt','w')asf:f.write(json.loads())#从淘宝的首页获取字段信息,如下get"".join(map(item=>lambdaitem:item[0]))第二步,要学会采用正则表达式。方法都是一样的,只要我们发送请求的报文中含有正则表达式。如下。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线