使用 Python 轻松抓取网页
注:文章基于python3,路上通过这篇文章中的内容,写了20多行代码,实现定时抓取某网页某几个数据的目标
准备工作
要使用python抓取网页,可以使用两个包:requests用于下载网页,而BeautifulSoup则对网页进行结构化解析。如果你在电脑上安装了pip,则可以使用下面的命令下载安装这两个包:
pip install requests beautifulsoup4
或者按照引用文章1将两个包安装到虚拟环境。
(实际上路上通过分析发现,在路上的需求里,第二个包没有用到。。)
抓取网页
抓取网页及其简单,假如我要抓取「https://pip.pypa.io/en/stable/」这个网页,则使用:
import requests
response = requests.get(‘https://pip.pypa.io/en/stable/')
在函数返回后,就能从response.text中获得这个页面的文本数据(html或者其他文本)。
抓取数据后,使用BeautifulSoup对文本数据处理,便会得结构化的HTML,然后就可以利用BeautifulSoup强大的HTML处理能力抓取相关内容了。但是路上经过分析发现需要抓取的内容位于某xx.js文件内,是json变量。所以BeautifulSoup没能使用的上。。
使用python处理JSON内容
python原生支持JSON,使用json.loads(JSONdata)将JSON转换为xml,然后使用xml相关技术得到相关数据。具体步骤略去。
python处理JSON可以参见这篇文章。