今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享。(官方不会打我吧 )

配置环境

为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加。

环境: python3 + requests 。还要引入几个系统库。参考如下:

import requests
import json
import csv from multiprocessing.dummy import Pool

分析网页

以chrome浏览器为例,空白处 右键->检查 进入网页分析模式,选择 Network 中的XHR,滚动条往下滚,观察右侧加载了什么文件。

在网页分享模式下,点击刚才下载的文件,查看里面的内容,发现对一个地址使用了GET方法,并传入了页码的参数。

再看看返回的内容是一个json字符串。

这个 json字符串里就有我们想要内容。一起看下如何用requests 发送参数,并返回Json 结果。

headers 

只需要根据地址,传入一个 headers 告诉网页我们要接收json字符串。

解析json

json是一种数据存储格式,可以被多种语言解析,一般用于数据传输。

由前一张图,可以看到所有文章列表在topic_list的topics中,一起看看 python3 是怎么解析的。

data = json.loads(html_str);
all_items=data['topic_list']['topics'] write_content=[];
for item in all_items:slug = item['slug'];item_id = item['id']link = f'https://forum.cocos.org/t/{slug}/{item_id}'title = item['title'];like_count = item['like_count'];like_count = item['like_count'];posts_count = item['posts_count'];views = item['views'];created_at = item['created_at'];write_content.append({'标题': title, '链接': link, '点赞':like_count, '回复':posts_count, '浏览':views, '发帖时间':created_at});

其中的链接地址可以通过打开几个论坛内容找到规律,是由 slug 和 id 这两个字段拼接的。

最后使用多线程 和 csv 存储结果。(不清楚的话可以看看之前的文章哦。

白玉无冰:python爬虫入门实战(三)!xpath 和 csv!​zhuanlan.zhihu.com

白玉无冰:python爬虫入门实战(二)!多线程爬虫!​zhuanlan.zhihu.com

)

pool = Pool(3);
orign_num=[x for x in range(0,10)];
result = pool.map(scrapy,orign_num);
with open('ccc_title_link.csv', 'w', newline='') as csvfile:fieldnames = ('标题', '链接', '点赞', '回复','浏览', '发帖时间')writer = csv.DictWriter(csvfile, fieldnames=fieldnames)writer.writeheader()for write_content in result:for _content in write_content:writer.writerow(_content);

最后,看看最终效果吧!

小结

对于动态生成的内容,我们可以通过网页分享中下载的文件分析,并通过requests模块模拟headers 和发送参数方法获取数据。

这是我学到的新技能哦!如有错误或其他想法,欢迎留言!如果我又学到新的东西,会第一时间分享给大家哦!点个关注不迷路!


以上内容仅供个人学习使用,请勿用于商业用途。

我是白玉无冰,游戏开发小赤佬,也玩python和shell


注意!Cocos 中文论坛域名修改!动态爬取论坛列表!python爬虫入门实战(四)!​mp.weixin.qq.com

layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!相关推荐

  1. python爬去百度百科词条_Python爬虫入门学习实践——爬取小说

    本学期开始接触python,python是一种面向对象的.解释型的.通用的.开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我 ...

  2. python爬虫动态加载_python爬虫入门实战(四)!爬取动态加载的页面!

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  3. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  4. python壁纸数据抓取_python爬虫多线程实战:爬取美桌1080p壁纸图片

    本人纯手工码字哦,请耐心看完,有信心可以带你完整学会这个实战案例 一.需求分析: 1.下载 http://www.win4000.com/wallpaper.html 下指定分类 指定尺寸 的图片 2 ...

  5. python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  6. python爬虫快速下载图片_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  7. Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题

      比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒--   又比如知乎关注的人列表页面:   我复制了其中两个人昵称 ...

  8. 怎么加载csv_python爬虫入门实战(四)!爬取动态加载的页面

    今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...

  9. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

最新文章

  1. 杨光:物联网连接将成为虚商发展新空间
  2. ABAP TBL隐藏列
  3. base64报错与已下载模块,但import失败解决
  4. Eclipse vs IDEA快捷键对比大全
  5. Nhibernate.hbm2ddl.auto配置详解
  6. 通过ActiveX执行文件
  7. Python打印A~Z的26个字母,你会怎样打印?
  8. A Concise and Provably Informative Multi-Scale Signature Based on Heat Diffusion
  9. 勒索老黄未果!黑客公布英伟达核心源代码,超40万个文件、75GB机密数据
  10. 前端使用身份证阅读器(高拍仪)集成vue项目
  11. 定期存款的转存临界点计算公式
  12. 什么是360度绩效评估反馈?
  13. 颜值即正义,这个蓝色爱心不好看吗
  14. 【论文阅读】Conversational Memory Networkfor Emotion Recognition in Dyadic Dialogue Videos
  15. Python常用的基本编程规范
  16. Java基本语法笔记
  17. Bias和Variance
  18. 微信广告转化归因几个坑 gdt_vid和clickid
  19. 网页部署https后浏览器访问风险提示或者您的链接不是私密链接解决方案
  20. 判断平年还是闰年,一个月有多少天,一年的第几天

热门文章

  1. 【题库】上海市学校心理咨询师-发展心理学-考点解析 2.1 成熟势力说
  2. html手机移动端轮播器,JS仿京东移动端手指拨动切换轮播图效果
  3. 我的毕业设计---家庭点歌系统
  4. 阿里大文娱从做大到做强
  5. 攻防世界-supersqli(堆叠注入)
  6. [收藏-篮球]后MJ时代的盛宴
  7. 我的故事--之我的名字
  8. 全面拥抱 K8s,ApacheDolphinScheduler 应用与支持 K8s 任务的探索
  9. 简单的仿QQ聊天(自娱自乐聊天室)
  10. 源码分享:基于SpringBoot的ERP系统,自带进销存+财务+生产功能