爬取Crossin教室ajax异步动态网页django教程内容示例(五)

一、示例代码:

python 复制代码
from bs4 import BeautifulSoup
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/117.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest', }
base_url = 'http://111.230.211.102:8080/static/tasks/djangogirl/'


def pages_parse(page):
    page_url = base_url + 'content' + str(page) + '.html'
    print(page_url)
    res = requests.get(url=page_url, headers=headers)

    html = res.text
    soup = BeautifulSoup(html, 'html.parser')
    text = soup.getText(separator='\n', strip=True)
    with open('e:/PycharmProjects/自动化练习/爬取crossin教室的djangogirl的页面内容.txt', 'a+', encoding='utf-8') as file:
        file.write(text)
    print(text)


if __name__ == '__main__':
    for page in range(18):
        pages_parse(page)

二、主要步骤说明:

该示例重点在于通过F12打开使用浏览器开发者工具,F5刷新页面,通过点击XHR过滤出来使用ajax的动态页面,选中页面后,通过右侧的标头选项卡里面的请求URL可以找到有实质页面内容的URL。之后就可以根据URL规律构造每页的URL字符串。然后循环爬取所有的页面。完成抓取。

三、要点说明:

该示例通过BeautifulSoup处理网页源代码中的标签。在码上行动答疑群咨询了Crossin老师,给出了以下的用法。通过调用soup对象的getText()方法,(getText()方法通过指定关键字参数separator='\n'、strip=True实现功能)成功去除了页面源代码中的所有html标签。

python 复制代码
text = soup.getText(separator='\n', strip=True)
相关推荐
大布布将军1 分钟前
☁️ 自动化交付:CI/CD 流程与云端部署
运维·前端·程序人生·ci/cd·职场和发展·node.js·自动化
LYFlied1 分钟前
Vue.js 中的 XSS 攻击防护机制详解
前端·vue.js·xss
七宝三叔6 分钟前
C#,为什么要用LINQ?
前端
七宝三叔7 分钟前
用「点外卖」的例子讲透HttpClient
前端
qq_139484288218 分钟前
python基于大数据技术的酒店消费数据分析系统
大数据·python·scrapy·django·flask
Beginner x_u24 分钟前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
C_心欲无痕29 分钟前
nodejs - pnpm解决幽灵依赖
前端·缓存·npm·node.js
wa的一声哭了33 分钟前
内积空间 内积空间二
java·开发语言·python·spring·java-ee·django·maven
二等饼干~za89866835 分钟前
GEO优化---关键词搜索排名源码开发思路分享
大数据·前端·网络·数据库·django
韩曙亮39 分钟前
【Web APIs】移动端轮播图案例 ( 轮播图自动播放 | 设置无缝衔接滑动 | 手指滑动轮播图 | 完整代码示例 )
前端·javascript·css·html·轮播图·移动端·web apis