申明:本文对爬取的数据仅做学习使用,不涉及任何商业活动,侵删

Python爬虫教程>1 使用Requests获取LOL游戏攻略

前戏

如果你想先了解一下什么是爬虫, 建议看一下这篇文章:学习爬虫前你需要知道这些

英雄联盟官方攻略站, 我们的目标是这些带有教学标签的文章

页面分析

这里大多是类似新闻的时效性文章, 因此推断 ->文章列表随时会更新 -> 动态加载

既然是动态加载, 那就说明要么是JS动态渲染, 要么就是ajax请求数据, 我们来逐个排除

先看ajax, 直接F12, 然后刷新页面并查看Network中的请求记录 (XHR即为ajax请求), 可以发现并没有类似文章数据的请求

ps: 鼠标放在社区栏时, 会有一个社区文章的ajax请求(图中第4个), 其余的专栏都是没有ajax的


既然不是ajax, 那就是js, 来看js中的情况

如图, 这个以zmMcnTargetContentList为开头的就是我们要找的, url如下:

https://apps.game.qq.com/cmc/zmMcnTargetContentList?r0=jsonp&page=1&num=16&target=27&source=web_pc&r1=jQuery19107274864195018544_1572185979166&_=1572185979169

其中参数page代表页码, num代表每页文章的个数

开始编码

爬虫代码如下

import requests
import re
import jsondef get_data(m_url):# 向目标网站发送get请求resp = requests.get(url=m_url)# 清洗返回的响应, 清洗得到的是strresp_cleared = re.findall(r'.*?\(({.*?})\);', resp.text)[0]# str转化为json, 返回一个list, 包含文章数据return json.loads(resp_cleared)['data']['result']def write_data(data_list):item = {}   # 定义一个空字典作为容器, 用来存放目标数据with open('lol_guide.json', 'w') as file:# 循环遍历文章list中的每一篇文章for data in data_list:# 写入容器item['Title'] = data['sTitle']item['URL'] = data['sRedirectURL']item['Date'] = data['sIdxTime']# 使用dumps, 将字典转化为json, 以便写入文件content = json.dumps(item, ensure_ascii=False) + '\n'file.write(content)     # 写入文件print('#写入成功 - {}'.format(item['Title']))if __name__ == '__main__':url_mode ='https://apps.game.qq.com/cmc/zmMcnTargetContentList?r0=jsonp&page={}&num=16&target=27&source=web_pc'# 循环的目的是遍历下一页的urlfor i in range(1, 7):url = url_mode.format(i)write_data(get_data(url))

执行结果

得到的json数据如下

{"Title": "恶魔刺客轻松应对 降星枪剑体系重新崛起", "URL": "https://lol.tuwan.com/400929/", "Date": "2019-09-06 15:03:40"}
{"Title": "9.17云顶之弈三大新兴套路 贵族船长翻身成为主C", "URL": "https://www.lolfun.cn/news/detail.html?id=9031", "Date": "2019-09-05 16:16:50"}
{"Title": "9.18云顶新装备来袭!阵容搭配全面解读", "URL": "https://www.titanar.com/pub/propaganda/5757", "Date": "2019-09-05 16:15:08"}
...

参考链接

Request(官方) 快速上手

Python中的JSON库

正则表达式

Python爬虫攻略(1)使用Requests获取LOL游戏攻略相关推荐

  1. python爬虫用urllib还是reques,python爬虫中urllib.request和requests有什么区别?

    在学习python爬虫,想要检索request相关内容时,往往会出现urllib.request和requests这两个词,urllib.request和requests都是python爬虫的模块,其 ...

  2. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  3. python requests_小白学 Python 爬虫(18):Requests 进阶操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. post python爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

  5. 【Python爬虫学习笔记3】requests库

    在上一篇中学习了urllib库的基本使用,通过它我们可以完成爬虫中发送请求和处理响应的大部分功能,但在实际使用中多少会很繁琐,比如处理Cookie时需要创建handler和opener对象.正因为如此 ...

  6. Python爬虫实例(1)--requests的应用

    Python爬虫实例(1) 我们在接下来的爬虫实例(1)里面将逐步的循序渐进的介绍爬虫的各个步骤. 已及时用到的工具,以及具体情况下的用法. 我们的任务是这样的: 爬取<修真聊天群>小说的 ...

  7. python爬虫学习实践(一):requests库和正则表达式之淘宝爬虫实战

    使用requests库是需要安装的,requests库相比urllib 库来说更高级方便一点,同时与scrapy相比较还是不够强大,本文主要介绍利用requests库和正则表达式完成一项简单的爬虫小项 ...

  8. python爬虫入门之————————————————第三节requests详解

    1.下载安装 (1)命令安装方式 Windows:打开命令窗口行,直接运行包管理命令安装          pip install requests   or  essy_install reques ...

  9. python爬虫库的常见用法_$python爬虫系列(2)—— requests和BeautifulSoup库的基本用法...

    本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...

最新文章

  1. Xamarin XAML语言教程基本视图ContentViewg构架范围框架
  2. CentOS 7 + MySql 中文乱码解决方案
  3. php赋值boolean,php布尔类型(Boolean)
  4. vue从入门到进阶:自定义指令directive,插件的封装以及混合mixins(七)
  5. 关于站库分离渗透思路总结
  6. 类似No module named 'bs4'等错误的解决方法
  7. 浙大PAT乙级1004. 成绩排名 (20)
  8. Java for selenium(webdriver) 环境搭建
  9. bootstrapmodel确认操作框_Bootstrap使用模态框modal实现表单提交弹出框
  10. (三)Web框架-龙卷风Tornado之快速上手
  11. matlab 平滑曲线连接_兔学 | MATLAB由离散数据点绘制曲线图像
  12. 自动化运维工具-ansible入门(一)
  13. c语言 程序设计 题库答案 p,《C语言程序设计》复习题库答案.doc
  14. 必须要了解的编程基础--哈希与字符串
  15. 品牌连锁店5G/4G无线组网方案
  16. XShell使用SSH密钥对连接阿里云ECS
  17. U3D Addressables异步加载资源,创建大物体卡顿解决方案
  18. Vue3 到底哪里好?和React Hook对比有啥有优势?本文详解
  19. 在Windows上使用EDA软件——利用WSL安装IC618、SPECTRE181
  20. 攻击攻击再攻击 - 笔记

热门文章

  1. facebook广告竞价如何运作,成交广告需支付多少费用(老版)
  2. 进入一个页面, EditText默认就会自动获取焦点的解决办法
  3. 服务器加装内存和硬盘后进不了操作系统,系统安装到内存中是怎么样的体验?RAMOS Win7安装教程...
  4. 怎么解决自动化用例获取token失败报错
  5. 中国科学技术大学2021计算机考研分数线,中国科学技术大学2021年考研复试基本分数线已发布...
  6. 【省流版】延年益寿 | 减肥 | 证据 | 防杠
  7. 990万次骑行: 纽约自行车共享系统分析
  8. 派克parker I-FORCE 410 无铁芯直线电机
  9. 安卓手机软件开发_分享5个高质量的手机软件
  10. 卸载apache mysql_WIN7如何卸载apache + mysql +php