php如何抓取网页数据(有关可以有所收获的几个小技巧,你知道吗?)

优采云 发布时间: 2021-12-15 05:51

  php如何抓取网页数据(有关可以有所收获的几个小技巧,你知道吗?)

  今天就跟大家聊一聊如何捕捉ajax动态网站。很多人可能不太了解。为了让大家更加了解,小编为大家总结了以下内容。希望大家能关注这篇文章。> 你可以有所收获。

  什么是阿贾克斯?简单的说,加载一个网页后,还是看不到一些信息,需要点击一个按钮才能看到数据,或者有的网页页面数据很多,而你点击了下一页,url地址网页没有变,但是内容变了。这些可以说是ajax。如果你还是不明白,让我给你看看百度百科的解释。以下是。

  Ajax 代表“AsynchronousJavascriptAndXML”(异步 JavaScript 和 XML),它指的是一种用于创建交互式 Web 应用程序的 Web 开发技术。

  Ajax = 异步 JavaScript 和 XML(标准通用标记语言的一个子集)。

  Ajax 是一种用于创建快速动态网页的技术。

  Ajax 是一种无需重新加载整个网页即可更新网页的一部分的技术。[

  通过在后台与服务器交换少量数据,Ajax 可以使网页异步更新。这意味着可以在不重新加载整个网页的情况下更新网页的某些部分。

  如果内容需要更新,传统网页(不使用 Ajax)必须重新加载整个网页。

  下面我们来谈谈一个例子。我爬过的ajax网页最难的部分是网易云音乐的评论。有兴趣的可以看看用python爬取网易云音乐并将数据存入mysql

  这里的评论是Ajax加载的,其他抓取今日头条图片的评论也是Ajax加载的,不过我简化了。还有很多,先不说,先说ajax网站 今天要说的!

  这是肯德基的门面信息

  

  页面数据很多,每个页面的数据都是通过ajax加载的。如果直接用python请求上面的url,估计是拿不到数据的。如果你不相信,你可以试试。这时候我们照常打开开发者工具。首先清除所有请求,勾选连续日志,然后点击下一页,你会看到

  

  上面的请求是ajax请求的网页,里面会有我们需要的数据,看看是个什么样的请求

  

  这是一个post请求。请求的成功状态码为200。请求url也存在。下面的from数据就是我们需要发布的数据。很容易猜到pageIndex是页数,所以我们可以改变这个值来翻页。

  分析此网页。这是ajax动态网页的解决方案。是不是感觉很简单,其实不然。只是网页比较简单,因为表单中的数据(来自数据)没有加密。如果是加密的,估计你找js文件看看参数是怎么加密的。这是我之前写的网易云音乐评论的爬取。看着这些乱七八糟的js找加密方式有时会让你头疼,所以人们往往会选择使用selenium进行爬虫,但是使用这些会降低爬虫的性能,所以在工作中是不允许这种方式的。所以我们必须学会如何处理这些ajax。

  邮政编码

  import requests

page = 1

while True:

   url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'

   data = {

           'cname': '广州',

           'pid': '',

           'pageIndex': page,

           'pageSize': '10'

   }

   response = requests.post(url, data=data)

   print(response.json())

   if response.json().get('Table1', ''):

       page += 1

   else:

       break

  看完以上内容,你对如何捕获ajax动态网站有进一步的了解吗?如果您想了解更多知识或相关内容,请关注易速云行业资讯频道,感谢您的支持。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线