当前位置: 首页 > news >正文

做学校网站素材中企动力科技股份有限公司广州分公司

做学校网站素材,中企动力科技股份有限公司广州分公司,郑州 服装网站建设,科凡网站建设目录 1. 什么是Ajax1.1 实例引入1.2 基本原理发送请求解析内容渲染网页 2. Ajax分析方法2.1 分析案例2.2 过滤请求 3. Ajax分析与爬取实战3.1 爬取目标3.2 初步探索3.3 爬取列表页分析实现基础配置爬取页面内容#xff08;获取页面的JSON内容#xff09;爬取列表页#xff0… 目录 1. 什么是Ajax1.1 实例引入1.2 基本原理发送请求解析内容渲染网页 2. Ajax分析方法2.1 分析案例2.2 过滤请求 3. Ajax分析与爬取实战3.1 爬取目标3.2 初步探索3.3 爬取列表页分析实现基础配置爬取页面内容获取页面的JSON内容爬取列表页爬取指定列表页 合并 3.4 爬取详情页分析实现爬取详情页串联调用 合并 3.5 保存数据MongoDB后期补充 使用requests获取的是原始HTML文档浏览器中的页面是JavaScript处理数据后生成的结果数据的来源 通过Ajax加载包含在HTML文档中经过JavaScript和特定算法计算后生成 Ajax加载数据 方式异步 原始页面最初不包含某些数据当原始页面加载成功后再向服务器请求某个接口获取数据 发送Ajax请求 然后将数据处理并呈现在网页上 1. 什么是Ajax AjaxAsynchronous JavaScript and XML异步的 JavaScript 和 XML 不是一门编程语言利用 JavaScript 在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术 1.1 实例引入 下滑查看更多下滑后加载的动画Ajax 加载的过程 1.2 基本原理 从Ajax请求到网页更新的这个过程可以分为3步 发送请求解析内容渲染网页 发送请求 JavaScript对Ajax最底层的实现 var xmlhttp; if (window.XMLHttpRequest) {xmlhttp new XMLHttpRequest(); } else {xmlhttp new ActiveXObject(Microsoft.XMLHTTP); }// 监听服务器返回响应 xmlhttp.onreadystatechange function() {// 解析响应内容if (xmlhttp.readyState 4 xmlhttp.status 200) {document.getElementById(myDiv).innerHTML xmlhttp.responseText;} }// 打开服务器链接 xmlhttp.open(POST, /ajax/, true);// 向服务器发送强求 xmlhttp.send();解析内容 var xmlhttp; if (window.XMLHttpRequest) {xmlhttp new XMLHttpRequest(); } else {xmlhttp new ActiveXObject(Microsoft.XMLHTTP); }xmlhttp.onreadystatechange function() {// 解析响应内容if (xmlhttp.readyState 4 xmlhttp.status 200) {document.getElementById(myDiv).innerHTML xmlhttp.responseText;} }xmlhttp.open(POST, /ajax/, true); xmlhttp.send();渲染网页 var xmlhttp; if (window.XMLHttpRequest) {xmlhttp new XMLHttpRequest(); } else {xmlhttp new ActiveXObject(Microsoft.XMLHTTP); }xmlhttp.onreadystatechange function() {if (xmlhttp.readyState 4 xmlhttp.status 200) {// 更改网页内容document.getElementById(myDiv).innerHTML xmlhttp.responseText;} }xmlhttp.open(POST, /ajax/, true); xmlhttp.send();2. Ajax分析方法 2.1 分析案例 微博 (weibo.cn)Ajax 的请求类型xhr如果 Request Headers 中有一个信息为XMLHttpRequest则此请求就是 Ajax 请求 以 getIndex 开头的请求 可以在 Preview 查看响应的内容也可以在 Response 查看真实返回的数据 2.2 过滤请求 点击 Network 中的 XHR 选项显示所有的 Ajax 请求 3. Ajax分析与爬取实战 爬取 Scrape | Movie 与 2.5Scrape | Movie不同 数据请求是通过 Ajax 实现的页面内容通过 JavaScript 渲染出来的只是呈现样式是一样的 3.1 爬取目标 爬取电影的名称、封面、类别、上映时间、评分、剧情简介等内容分析页面数据的加载逻辑用 requests 实现 Ajax 数据的爬取将每部电影数据分别保存到 MongoDB 数据库 3.2 初步探索 import requestsurl https://spa1.scrape.center/ html requests.get(url).textprint(html)获取到的 html 资源较少整个页面都是JavaScript渲染得到的浏览器执行了HTML中引用的JavaScript文件JavaScript通过调用一些数据加载和页面渲染方法才最终呈现出浏览器中的显示效果数据一般是通过Ajax加载的JavaScript在后台调用Ajax数据接口 3.3 爬取列表页 分析 请求URL的limit恒定为10offset为已经已经翻过的电影数量 ( 当前页数 − 1 ) ∗ 10 (当前页数-1)*10 (当前页数−1)∗10根据响应内容可以发现所需数据皆在其中 实现 基础配置 import logginglogging.basicConfig(levellogging.INFO,format%(asctime)s %(levelname)s: %(message)s)INDEX_URL https://spa1.scrape.center/api/movie/?limit{limit}offset{offset}爬取页面内容获取页面的JSON内容 import requestsdef scrape_api(url):logging.info(fscraping {url}...)try:response requests.get(url)if response.status_code 200:return response.json()logging.error(fStatus code: {response.status_code} while scraping {url})except requests.RequestException:logging.error(fError while scraping {url}, exc_infoTrue)爬取列表页爬取指定列表页 LIMIT 10def scrape_index(page):url INDEX_URL.format(limitLIMIT, offsetLIMIT * (page - 1))return scrape_api(url)合并 import logging import requestslogging.basicConfig(levellogging.INFO,format%(asctime)s %(levelname)s: %(message)s)INDEX_URL https://spa1.scrape.center/api/movie/?limit{limit}offset{offset} LIMIT 10def scrape_api(url):logging.info(fscraping {url}...)try:response requests.get(url)if response.status_code 200:return response.json()logging.error(fStatus code: {response.status_code} while scraping {url})except requests.RequestException:logging.error(fError while scraping {url}, exc_infoTrue)def scrape_index(page):url INDEX_URL.format(limitLIMIT, offsetLIMIT * (page - 1))return scrape_api(url)3.4 爬取详情页 分析 url最后的一个参数为此电影的id电影的idAjax请求返回的数据中含有电影对应的id 实现 爬取详情页 DETAIL_URL https://spa1.scrape.center/api/movie/{id}def scrape_detail(id):url DETAIL_URL.format(idid)return scrape_api(url)串联调用 TOTAL_PAGE 10def main():for page in range(1, TOTAL_PAGE 1):index_data scrape_index(page)for item in index_data.get(results):id item.get(id)detail_data scrape_detail(id)logging.info(fdetail data {detail_data})if __name__ __main__:main()合并 import logging import requestslogging.basicConfig(levellogging.INFO,format%(asctime)s %(levelname)s: %(message)s)INDEX_URL https://spa1.scrape.center/api/movie/?limit{limit}offset{offset} DETAIL_URL https://spa1.scrape.center/api/movie/{id} LIMIT 10 TOTAL_PAGE 10def scrape_api(url):logging.info(fscraping {url}...)try:response requests.get(url)if response.status_code 200:return response.json()logging.error(fStatus code: {response.status_code} while scraping {url})except requests.RequestException:logging.error(fError while scraping {url}, exc_infoTrue)def scrape_index(page):url INDEX_URL.format(limitLIMIT, offsetLIMIT * (page - 1))return scrape_api(url)def scrape_detail(id):url DETAIL_URL.format(idid)return scrape_api(url)def main():for page in range(1, TOTAL_PAGE 1):index_data scrape_index(page)for item in index_data.get(results):id item.get(id)detail_data scrape_detail(id)logging.info(fdetail data {detail_data})if __name__ __main__:main()3.5 保存数据MongoDB后期补充
http://www.zqtcl.cn/news/353637/

相关文章:

  • 成都电子商务网站大庆城市投资建设网站
  • 电子商务网站费用wordpress 怎么手动更新
  • 中国空间站设计在轨飞行多少年南昌网站建设风格
  • 用php写的网站有哪些暖暖 视频 在线 观看 高清
  • 云空间网站怎么做海南旅游网网页制作
  • 常宁网站免费的ai作图软件
  • 网站建设讲师招聘如何做电商产品推广
  • 让百度收录网站网站开发流程进度表
  • 有几个网站能在百度做推广产品开发管理系统
  • 一个网站项目的价格表dz论坛seo
  • 企业做网站要多少钱哪个网站做动图
  • 知名企业网站例子4s店网站模板
  • 网站建设的信息安全防范技术初级买题做哪个网站好
  • 品牌营销网站建设东莞智通人才招聘网
  • 莒县建设局网站好的网站具备什么条件
  • 威海网站建设怎么样网上怎么推销自己的产品
  • 网站做SEO优化网站建设背景图片大小的修改
  • 看企业网站怎么做到百度秒收WordPress怎么可以上传图片
  • 欧洲手表网站简述jsp网站架构
  • 网站搜索排名优化软件flash xml网站
  • 匀贵网站建设亿级别网站开发注意
  • 怎样架设网站网站优化公司推荐
  • iis网站防盗链济宁官方网站
  • 网址查询地址查询站长之家在海南注册公司需要什么条件
  • 网站开发兼职平台网站建设需要多少钱小江网页设计
  • 最专业的网站建设收费2021没封的网站有人分享吗
  • 站酷设计网站官网入口文字设计wordpress是服务器吗
  • 律师手机网站模板天津做推广的公司
  • 西安市高新区建设规划局网站织梦小说网站模板下载地址
  • 网站开发简历 自我评价网页设计报告论文