动态内容抓取与渲染:从 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
还可通
超级会员免费看
订阅专栏 解锁全文
1580

被折叠的 条评论
为什么被折叠?



