admin 管理员组文章数量: 887021
动态页面与静态页面
比较常见的页面形式可以分为两种:
- 静态页面
- 动态页面
静态页面和动态页面的区别
使用requests
进行数据获取的时候一般使用的是respond.text
来获取网页源码,然后通过正则表达式提取出需要的内容。
例如:
import requests
response = requests.get('https://www.baidu')
print(response.text.encode('raw_unicode_escape').decode())
百度源代码.png
但是动态页面使用上述操作后发现,获取到的内容与实际相差很大。
例如我们打开如下页面:
https://www.aqistudy/historydata/monthdata.php?city=北京
右键选择查看网页源代码
查看网页源代码.png
在网页源代码中查找页面中存在的一个数据:2014-02的PM10为155。
北京空气质量指数.png
这时打开F12查看Elements
可以看到155
在元素中有显示
检查.png
综上基本可以明白静态页面和动态页面的区别了。
有两种方式可以获取动态页面的内容:
- 破解JS,实现动态渲染
- 使用浏览器模拟操作,等待模拟浏览器完成页面渲染
由于第一个比较困难所以选择方法二
需求分析
获取各个城市近年来每天的空气质量
- 日期
- 城市
- 空气质量指数
- 空气质量等级
- pm2.5
- pm10
- so2
- co
- no2
- o3
使用scrapy
scrapy操作的基本流程如下:
1.创建项目:scrapy startproject 项目名称
2.新建爬虫:scrapy genspider 爬虫文件名 爬虫基础域名
3.编写item
4.spider最后return item
5.在setting中修改pipeline配置
6.在对应pipeline中进行数据持久化操作
创建
打开命令行,输入scrapy startproject air_history
,创建一个名为air_history
的scrapy项目
进入该文件夹,输入scrapy genspider area_spider "aqistudy"
,可以发现在spiders文件夹下多了一个名为area_spider
的py文件
文件目录结构大概如下:
.
├── air_history
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ └
版权声明:本文标题:scrapy结合selenium进行动态加载页面内容爬取 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726436248h960278.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论