10、动态内容抓取与渲染:从 AJAX 到浏览器自动化

动态内容抓取与渲染:从 AJAX 到浏览器自动化

1. AJAX 抓取优化

在运行代码 python chp5/json_scraper.py 时,会看到逐步输出,如“Searching with a”“adding 10 more records from page 0”等。脚本完成后, ../data/ 文件夹下的 countries.txt 文件会显示排序后的国家名称列表。可以通过 PAGE_SIZE 全局变量设置每页记录数,以此增加或减少请求次数。

与传统逐页抓取方式相比,这种 AJAX 抓取器提取国家详细信息更简单。依赖 AJAX 的网站起初看似复杂,但结构上鼓励数据层和展示层分离,反而使数据提取工作更轻松。若遇到有开放 API 的网站,可直接抓取 API,而非用 CSS 选择器和 XPath 从 HTML 加载数据。

为进一步简化 AJAX 搜索脚本,可利用边界情况。原本对每个字母进行查询,存在重复结果。尝试不同字符,发现用正则表达式 . 可匹配所有结果:

import requests
url = 'http://example.webscraping.com/ajax/search.json?page=0&page_size=10&search_term='
print(requests.get(url + '.').json()['num_pages'])  # 输出 26

还可通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值