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

本文分享了如何使用Python爬虫处理动态加载的网页,以cocos论坛为例,介绍了分析网页、发送GET请求获取JSON数据以及解析JSON内容的方法。通过模拟浏览器行为,利用requests库抓取动态内容,并用多线程和CSV存储结果。
摘要由CSDN通过智能技术生成

有些网页是动态加载的,那么怎么处理呢?

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

配置环境

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

在这里插入图片描述

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

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

分析网页

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

在这里插入图片描述

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

在这里插入图片描述

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

Python中,爬取滚动加载的内容通常涉及到模拟浏览器的行为,因为这种动态加载的内容不是一次性加载完成的,而是通过JavaScript等前端技术逐次加载。你可以使用一些专门为此设计的库,比如Selenium、Pyppeteer或者Scrapy-splash。 以下是使用Selenium的基本步骤: 1. 安装依赖:首先安装selenium库(如果你还没有的话): ``` pip install selenium ``` 2. 下载驱动:选择合适的浏览器驱动(如ChromeDriver),下载对应版本并将其添加到系统路径中。 3. 编写脚本: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def scroll_to_bottom_and_wait(driver): last_height = driver.execute_script("return document.body.scrollHeight") while True: driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") new_height = driver.execute_script("return document.body.scrollHeight") if new_height == last_height: break last_height = new_height WebDriverWait(driver, 10).until(EC.staleness_of_element_located((By.TAG_NAME, "some-loading-indicator"))) driver = webdriver.Chrome() # 使用Chrome driver.get('https://需要爬取的滚动加载网站') # 替换为你想爬的网页URL scroll_to_bottom_and_wait(driver) content = driver.page_source # 获取滚动到底部后的HTML源码 # 然后解析这个content,提取你需要的信息 ``` 在这个例子中,我们滚动到底部,并等待所有动态加载的内容稳定下来。之后获取整个页面的HTML源码,再进行后续的数据解析工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值